I am running an Postfix server with Letsencrypt certificates. I have enabled DNSSEC for my site and initially I had only the following TLSA records
_25._tcp.server.my-domain.tld. IN CNAME letsencrypt._dane.my-domain.tld.
letsencrypt._dane.my-domain.tld. 13104 IN TLSA 0 1 1 762195C225586EE6C0237456E2107DC54F1EFC21F61A792EBD515913 CCE68332
letsencrypt._dane.my-domain.tld. IN TLSA 0 1 1 0B9FA5A59EED715C26C1020C711B4F6EC42D58B0015E14337A39DAD3 01C5AFC3
I set the usage field to 0
and therewith declared both active ISRG root certificates X1 and X2 to be PKIX-TAs for my site (or CA constraint).
After that the outgoing mail servers from web.de (and gmx.de), a big German mail provider, were unable to deliver mails to my mail server. Their mail servers closed the TLS connection with
May 08 12:05:38 server postfix/smtpd[90259]: SSL3 alert read:fatal:insufficient security
I discussed the problems with the guys from web.de and it turned out, that their mail servers enforce consistent DNS entries during validation of OCSP (and CRLs). The subscriber certificate points to r3.o.lencr.org
for OCSP validation and r3.o.lencr.org | DNSViz shows that AKAMAI has some issues.
I guess that web.de follows this strict policy to mitigate DoS attacks if an attacker spoofs the DNS records and issues illegitimate OCSP responses or CRLs. Surely, one could argue that this is not strictly necessary, because the OCSP response and CRL has to be signed by the (intermediate) CA certificate anyway and hence spoofing DNS alone is not sufficient for an successful DoS attack. But this is how it is.
My site is also too insignificant to convince web.de to change their policy. Also, straightening up the DNS records should be worthily job on its own.
As a workaround I was able to declare each of Letsencrypt intermediate certificates as a DANE-TA of it own, i.e. with the following additional TLSA records everything is working again
# E1
letsencrypt._dane.my-domain.tld. IN TLSA 2 1 1 276fe8a8c4ec7611565bf9fce6dcace9be320c1b5bea27596b2204071ed04f10
# E2
letsencrypt._dane.my-domain.tld. IN TLSA 2 1 1 bd936e72b212ef6f773102c6b77d38f94297322efc25396bc3279422e0c89270
# E5
letsencrypt._dane.my-domain.tld. IN TLSA 2 1 1 3586d4ecf070578cbd27aedce20b964e48bc149faeb9dad72f46b857869172b8
# E6
letsencrypt._dane.my-domain.tld. IN TLSA 2 1 1 d016e1fe311948aca64f2de44ce86c9a51ca041df6103bb52a88eb3f761f57d7
# E7
letsencrypt._dane.my-domain.tld. IN TLSA 2 1 1 cbbc559b44d524d6a132bdac672744da3407f12aae5d5f722c5f6c7913871c75
# E8
letsencrypt._dane.my-domain.tld. IN TLSA 2 1 1 885bf0572252c6741dc9a52f5044487fef2a93b811cdedfad7624cc283b7cdd5
# E9
letsencrypt._dane.my-domain.tld. IN TLSA 2 1 1 f1440a9b76e1e41e53a4cb461329bf6337b419726be513e42e19f1c691c5d4b2
# R3
letsencrypt._dane.my-domain.tld. IN TLSA 2 1 1 8d02536c887482bc34ff54e41d2ba659bf85b341a0a20afadb5813dcfbcf286d
# R4
letsencrypt._dane.my-domain.tld. IN TLSA 2 1 1 e5545e211347241891c554a03934cde9b749664a59d26d615fe58f77990f2d03
# R10
letsencrypt._dane.my-domain.tld. IN TLSA 2 1 1 2bbad93ab5c79279ec121507f272cbe0c6647a3aae52e22f388afab426b4adba
# R11
letsencrypt._dane.my-domain.tld. IN TLSA 2 1 1 6ddac18698f7f1f7e1c69b9bce420d974ac6f94ca8b2c761701623f99c767dc7
# R12
letsencrypt._dane.my-domain.tld. IN TLSA 2 1 1 919c0df7a787b597ed056ace654b1de9c0387acf349f73734a4fd7b58cf612a4
# R13
letsencrypt._dane.my-domain.tld. IN TLSA 2 1 1 025490860b498ab73c6a12f27a49ad5fe230fafe3ac8f6112c9b7d0aad46941d
# R14
letsencrypt._dane.my-domain.tld. IN TLSA 2 1 1 f1647a5ee3efac54c892e930584fe47979b7acd1c76c1271bca1c5076d869888
But with Letsencrypt new approach which uses varying intermediate certificates maintaining this bunch of TLSA records is tedious.
I would highly appreciate if,
- someone from Letsencrypt with more influence than me could contact web.de and ask to change their validation policy, or
- tidy up the DNS records for OCSP queries/CRL loading