[Moderator’s note November 2019: I’ve updated the references here to refer to the Let’s Encrypt Authority X3 intermediate, which is currently in use. Please see further discussion below about coping with changing intermediates.]
so you want to have DANE with LE (let’s not discuss the politics thereof).
the ISRG Root X1 from https://letsencrypt.org/certificates/ is not what you want to use for the TLSA. you want the Let’s Encrypt Authority X3 (IdenTrust cross-signed), and this recipe is for the .pem.
stash the lets-encrypt-x3-cross-signed.pem and whack it into a 2 0 1 TLSA
openssl x509 -in lets-encrypt-x3-cross-signed.pem.txt -outform DER | openssl dgst -sha256 -hex | awk '{print "le-ca TLSA 2 0 1", $NF}'
producing
le-ca TLSA 2 0 1 25847d668eb4f04fdd40b12b6b0740c567da7d024308eb6c2c96fe41d9de218d
[ you can actually just steal that TLSA value ]
i put this TLSA at the top of my fave base zone file, RG.NET in my case, so essentially it is a TLSA for le-ca.rg.net.
then, in the RRset for a server for which i have the LE cert, i can hack in, for example
psg.com. A 147.28.0.62
_443._tcp CNAME le-ca.rg.net.
forcing 443/tcp is because the LE cert is
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
that’s it.
Thanks to Rob Austein and Shumon Huque for clues. DNSsec and DANE are just sooooo intuitive.