Wildcard certificate and DANE/TLSA records

zorion zorion at autistici.org
Mon Dec 31 18:52:38 CET 2018


Hello,

I'm working with a wildcard certificate[0] for a domain that I'm trying
to add dane/tlsa records. There are a series of MX servers that use this
certificate and I thought that I could put the specific name of the
server into the TLSA record and that would work, but when I try to test
that with one of the testers online, they fail to verify it, I think
because there is no specific match to the name.

For example, I made these records using the certificate chain for the
input to danetool:

danetool --tlsa-rr --host mx1.riseup.net --load-certificate
./wildcard_server_chain.pem --app-proto=smtp --ca --x509

_25._tcp.mx1.riseup.net. IN CNAME tlsa._mxdane.riseup.net.
tlsa._mxdane.riseup.net. IN TLSA ( 02 00 01
3814e3eaf91e30451790697a98b1b5594cdbdfef4a73ef5a47ed33c556816645 )

But when I try to test that, I get:

#################################################################
### CHECKING MX HOST: mx1.riseup.net
#################################################################

TLSA records found: 1
TLSA: 2 0 1 3814e3eaf91e30451790697a98b1b5594cdbdfef4a73ef5a47ed33c556816645

Connecting to IPv4 address: 198.252.153.129 port 25
recv: 220-mx1.riseup.net ESMTP (spam is not appreciated)
recv: 220 mx1.riseup.net ESMTP (spam is not appreciated)
send: EHLO cheetara.huque.com
recv: 250-mx1.riseup.net
recv: 250-PIPELINING
recv: 250-SIZE 25600000
recv: 250-ETRN
recv: 250-STARTTLS
recv: 250-ENHANCEDSTATUSCODES
recv: 250-8BITMIME
recv: 250 DSN
send: STARTTLS
recv: 220 2.0.0 Ready to start TLS
TLSv1.2 handshake succeeded.
Cipher: TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
Peer Certificate chain:
 0 Subject CN: *.riseup.net
   Issuer  CN: COMODO RSA Domain Validation Secure Server CA
 1 Subject CN: COMODO RSA Domain Validation Secure Server CA
   Issuer  CN: COMODO RSA Certification Authority
 2 Subject CN: COMODO RSA Certification Authority
   Issuer  CN: AddTrust External CA Root
 3 Subject CN: AddTrust External CA Root
   Issuer  CN: AddTrust External CA Root
 SAN dNSName: *.riseup.net
 SAN dNSName: riseup.net
Error: peer authentication failed. rc=65 (No matching DANE TLSA records)

[2] Authentication failed for all (1) peers.

I suspect this is because the SAN dNSName does not specify
mx1.riseup.net? I cannot find any specific details for how wildcards are
handled in the RFCs.

Did I define the record incorrectly, or generate the hash over the wrong
pieces? I thought maybe it was because I used the PEM encoded cert
chain, but its not possible to generate a DER when the input is a
multiple cert file.

Thanks for any help!


0. yes, I am aware of why wildcards are discouraged, but this is what I
have to work with here.



More information about the dane-users mailing list