DANE / TLSA
DANE pins your mail server's certificate in DNS, so a sender can tell the real host from a substituted one. It rests entirely on DNSSEC — without a signed zone, a TLSA record protects nothing at all.
Errors
- TLSA records published, but the zone is not signedThis configuration provides no protection at all. DANE rests entirely on DNSSEC: an attacker who can substitute a certificate can also remove these records, and a sender that sees no TLSA record just carries on without DANE. Sign the zone, or use MTA-STS instead.
Looking good
- The certificate served by mx04.posteo.de matches its TLSA recordChecked by connecting on port 25, negotiating STARTTLS and computing the association from the certificate presented.
- The certificate served by mx01.posteo.de matches its TLSA recordChecked by connecting on port 25, negotiating STARTTLS and computing the association from the certificate presented.
- The certificate served by mx02.posteo.de matches its TLSA recordChecked by connecting on port 25, negotiating STARTTLS and computing the association from the certificate presented.
- The certificate served by mx03.posteo.de matches its TLSA recordChecked by connecting on port 25, negotiating STARTTLS and computing the association from the certificate presented.
mx04.posteo.de
_25._tcp.mx04.posteo.de
| Usage | Selector | Matching | Association |
|---|---|---|---|
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | b2305f6446e9cfae4f00f0acc02533eb057c4f2198b6db068e954d32c1b33eee |
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | a73a9adb16bd5a4131df79c446438e138da78fbb64d4ebad97017a4fad4ec92e |
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | 13815b2c03f7bd63c54869706428442edab706d5b018a27575ca989129a196d5 |
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | 2a2413f46c23290866a3fb9c1658a404bcf6a71373d002a29d67c23ed8df298d |
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | 2ad38769dc6a92ed98fb7a45514c0a74919ebc9fa13514c5c742c92080a66874 |
The certificate served on port 25 matches one of these records.
mx01.posteo.de
_25._tcp.mx01.posteo.de
| Usage | Selector | Matching | Association |
|---|---|---|---|
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | a73a9adb16bd5a4131df79c446438e138da78fbb64d4ebad97017a4fad4ec92e |
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | 2ad38769dc6a92ed98fb7a45514c0a74919ebc9fa13514c5c742c92080a66874 |
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | 2a2413f46c23290866a3fb9c1658a404bcf6a71373d002a29d67c23ed8df298d |
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | b2305f6446e9cfae4f00f0acc02533eb057c4f2198b6db068e954d32c1b33eee |
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | 13815b2c03f7bd63c54869706428442edab706d5b018a27575ca989129a196d5 |
The certificate served on port 25 matches one of these records.
mx02.posteo.de
_25._tcp.mx02.posteo.de
| Usage | Selector | Matching | Association |
|---|---|---|---|
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | a73a9adb16bd5a4131df79c446438e138da78fbb64d4ebad97017a4fad4ec92e |
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | 2a2413f46c23290866a3fb9c1658a404bcf6a71373d002a29d67c23ed8df298d |
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | 2ad38769dc6a92ed98fb7a45514c0a74919ebc9fa13514c5c742c92080a66874 |
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | 13815b2c03f7bd63c54869706428442edab706d5b018a27575ca989129a196d5 |
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | b2305f6446e9cfae4f00f0acc02533eb057c4f2198b6db068e954d32c1b33eee |
The certificate served on port 25 matches one of these records.
mx03.posteo.de
_25._tcp.mx03.posteo.de
| Usage | Selector | Matching | Association |
|---|---|---|---|
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | 2a2413f46c23290866a3fb9c1658a404bcf6a71373d002a29d67c23ed8df298d |
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | 13815b2c03f7bd63c54869706428442edab706d5b018a27575ca989129a196d5 |
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | a73a9adb16bd5a4131df79c446438e138da78fbb64d4ebad97017a4fad4ec92e |
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | 2ad38769dc6a92ed98fb7a45514c0a74919ebc9fa13514c5c742c92080a66874 |
| 3 — DANE-EE (domain-issued certificate) | 1 — SubjectPublicKeyInfo | 1 — SHA-256 | b2305f6446e9cfae4f00f0acc02533eb057c4f2198b6db068e954d32c1b33eee |
The certificate served on port 25 matches one of these records.
HOW TO READ THIS
What each part is forDNSSEC is not optional
DANE's whole guarantee is that the TLSA record cannot be tampered with in transit. In an unsigned zone, an attacker who can substitute your certificate can equally delete the record that would have caught them — and a sender that finds no record simply proceeds without DANE. A TLSA record without DNSSEC is decoration.
Usage 2 and 3 only
RFC 7672 requires mail servers to ignore usages 0 and 1. They depend on Web PKI validation of a hostname the sender reached by MX lookup rather than by URL, which it cannot check. Publishing one has no effect.
Selector 1 survives renewal
Selector 0 pins the certificate, so every renewal breaks it. Selector 1 pins the public key, so a renewal that reuses the key needs no DNS change. That difference is the most common cause of DANE outages.
DANE or MTA-STS
Both stop STARTTLS being stripped. DANE needs DNSSEC and is checked per host; MTA-STS needs an HTTPS endpoint and is published per domain. Running both is fine and reasonably common — a sender uses whichever it supports.