On Thu, Oct 30, 2025 at 04:00:45PM +0000, John Levine via mailop wrote:

> It appears that Edmund Lodewijks via mailop <[email protected]> said:
>
> >Does this setup work, a self-signed certificate in combination with
> >DANE?
> >
> >Whenever I tried this, connections from Gmail and Protonmail (and
> >potentially others) got dropped right after tls:

There is a non-trivial minority of SMTP servers that have self-signed
certificates.  Barring some reason to expect otherwise (MTA-STS policy?),
SMTP clients broadly tolerate unvalidatable server certificates,
including self-signed as one of many ways that can happen.  That's just
basic unauthenticated opportunistic TLS.

For example, the backup MX of the Armenian NIC, "isoc.amnic.net" has
a self-signed cert and matching TLSA records:

    _25._tcp.isoc.amnic.net. IN TLSA 3 1 1 
e85440f7099608bfaf645ce0b4806f556601a96f4a720c91b6e76ea4cdd0d4e6
      isoc.amnic.net[195.43.74.26]: pass: TLSA match: depth = 0
        TLS = TLS1.3 with TLS_AES_256_GCM_SHA384,X25519,PubKeyALG_RSA
        name = isoc-1.amnic.net
        depth = 0
          Issuer CommonName = isoc-1.amnic.net
          Issuer Organization = Internet Society Public Organization
          notBefore = 2024-07-04T18:10:52Z
          notAfter = 2027-07-04T18:10:52Z
          Subject CommonName = isoc-1.amnic.net
          Subject Organization = Internet Society Public Organization
          pkey sha256 [matched] <- 3 1 1 
e85440f7099608bfaf645ce0b4806f556601a96f4a720c91b6e76ea4cdd0d4e6

Likewise both MX hosts of a Czech health insurance provider:

    cpzp.cz. IN MX 10 posta.cpzp.cz.
    cpzp.cz. IN MX 30 postc.cpzp.cz.
    _25._tcp.posta.cpzp.cz. IN TLSA 3 1 1 
582364ed6dd790dbb5c121050ab0620c9be20a8d7e59ed55a2e917b744028165
      posta.cpzp.cz[193.85.230.100]: pass: TLSA match: depth = 0, name = 
posta.cpzp.cz
        TLS = TLS1.2 with TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,X25519
        name = posta
        name = posta.cpzp.cz
        depth = 0
          Issuer CommonName = posta
          notBefore = 2021-09-21T16:05:32Z
          notAfter = 2026-09-21T16:05:32Z
          Subject CommonName = posta
          pkey sha256 [matched] <- 3 1 1 
582364ed6dd790dbb5c121050ab0620c9be20a8d7e59ed55a2e917b744028165
    _25._tcp.postc.cpzp.cz. IN TLSA 3 1 1 
cedc8c091d393f523c0ab409cd06ff6b0f0b15ae1acf83990585328b2dc44200
      postc.cpzp.cz[193.85.230.101]: pass: TLSA match: depth = 0, name = 
postc.cpzp.cz
        TLS = TLS1.2 with TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,X25519
        name = postc
        name = postc.cpzp.cz
        depth = 0
          Issuer CommonName = postc
          notBefore = 2021-07-01T06:46:53Z
          notAfter = 2026-07-01T06:46:53Z
          Subject CommonName = postc
          pkey sha256 [matched] <- 3 1 1 
cedc8c091d393f523c0ab409cd06ff6b0f0b15ae1acf83990585328b2dc44200

So you should be able to field a DANE-validatable self-signed cert and
not have trouble receiving mail from either non-DANE SMTP clients or
DANE-enabled SMTP clients (provided the TLSA records match that cert or
its public key).

> It works for mail systems that use DANE.

No, it is expected to just work regardless.  Some clients might balk if
the certificate is manifestly expired (a mistake, but best to not tempt
them).  Some might also object to poor choices of key usage or extended
key usage extensions.

> I know Gmail doesn't (that is why we have MTA-STS).  Protonmail's DNS
> isn't DNSSSEC signed, so I doubt they do either.

The protomail.ch domain is not only DNSSEC-signed, but its MX hosts even
have TLSA records, and support over 82K DNSSEC-signed customer domains.
So they definitely to *inbound* DANE.  I was under the impression they
also do outbound DANE, but I not in possession of hard facts that
demonstrace that to be the case.

    https://stats.dnssec-tools.org/explore/?protonmail.ch

Though in this case not self-signed:

    _25._tcp.mail.protonmail.ch. IN TLSA 3 1 1 
6111a5698d23c89e09c36ff833c1487edc1b0c841f87c49dae8f7a09e11e979e
    _25._tcp.mail.protonmail.ch. IN TLSA 3 1 1 
76bb66711da416433ca890a5b2e5a0533c6006478f7d10a4469a947acc8399e1
      mail.protonmail.ch[176.119.200.128]: pass: TLSA match: depth = 0, name = 
*.protonmail.ch
        TLS = TLS1.3 with TLS_AES_256_GCM_SHA384,X25519,PubKeyALG_RSA
        name = *.pm.me
        name = *.protonmail.ch
        name = *.protonmail.com
        name = *.protonvpn.ch
        name = *.protonvpn.com
        name = protonmail.com
        depth = 0
          Issuer CommonName = R13
          Issuer Organization = Let's Encrypt
          notBefore = 2025-10-07T13:23:55Z
          notAfter = 2026-01-05T13:23:54Z
          Subject CommonName = protonmail.com
          pkey sha256 [matched] <- 3 1 1 
76bb66711da416433ca890a5b2e5a0533c6006478f7d10a4469a947acc8399e1
        depth = 1
          Issuer CommonName = ISRG Root X1
          Issuer Organization = Internet Security Research Group
          notBefore = 2024-03-13T00:00:00Z
          notAfter = 2027-03-12T23:59:59Z
          Subject CommonName = R13
          Subject Organization = Let's Encrypt
          pkey sha256 [nomatch] <- 2 1 1 
025490860b498ab73c6a12f27a49ad5fe230fafe3ac8f6112c9b7d0aad46941d

All five of the domains in the certifiate are DNSSEC-signed and have
working inbound DANE: pm.me, protonmail.ch, protonmail.com,
protonvpn.ch, protonvpn.com.

-- 
    Viktor.  🇺🇦 Слава Україні!
_______________________________________________
mailop mailing list
[email protected]
https://list.mailop.org/listinfo/mailop

Reply via email to