Skip to main content

    DANE Certificate Rollover: Why TLSA Records Break Mail

    DANE pins your certificate in DNS, so every renewal can break mail delivery. Which TLSA record survives a renewal, and how to roll over without downtime.

    MS
    My-SSL Team
    ·
    13 min read
    ·
    Published October 2, 2026
    ·
    Last updated October 2, 2026

    The short answer

    A TLSA record breaks on renewal when it pins something the renewal changes. A 3 0 1 record hashes the whole certificate, so it stops matching every time, while a 3 1 1 record hashes the public key and keeps matching as long as the key pair is reused. RFC 7672 recommends 3 1 1 for SMTP for exactly this reason. The trap is that most ACME clients generate a fresh private key on each renewal unless told otherwise, which turns the stable record back into a per-renewal outage — and under Ballot SC-081v3 that renewal happens roughly twice a year today and around eight times a year from March 2029.

    What a certificate renewal does to a TLSA record, compared between a record that hashes the whole certificate and a record that hashes the public keyTwo columns, each following one TLSA record through a renewal. The left column is a 3 0 1 record, whose hash covers the DER-encoded certificate. Before renewal it matches certificate one; after renewal the certificate bytes are new, so the hash is new and the published record no longer matches, which happens at every renewal without exception. The right column is a 3 1 1 record, whose hash covers the SubjectPublicKeyInfo. Before renewal it matches the key in certificate one; after a renewal that keeps the same key pair the SubjectPublicKeyInfo is unchanged, so the same hash still matches and the record needs no update. The right outcome is highlighted in gold. A note underneath records that RFC 7672 recommends the DANE-EE, SPKI, SHA-256 combination for SMTP for this reason.What renewal does to the pinThe middle field of the TLSA record is the one that decidesTLSA 3 0 1hash of the whole certificateTLSA 3 1 1hash of the public keyCertificate #1SHA-256 over the DER certificatea1b2c3d4 … matchesrenewalCertificate #2new serial, new dates, new bytes9f8e7d6c … differsRecord stops matchingat every renewal, with no exceptionsCertificate #1SHA-256 over SubjectPublicKeyInfo7c5d1a90 … matchesrenewal,same key pairCertificate #2new serial and dates, same key7c5d1a90 … unchangedRecord still matchesnothing to publish, nothing to timeRFC 7672 recommends DANE-EE(3) SPKI(1) SHA2-256(1) for SMTP, and this is why.The pin follows the key, so a rollover is only needed when the key changes.A client that generates a fresh key on each renewal turns the right column back into the left.
    One digit separates a record you never touch again from a record that expires with every certificate. If you inherited a TLSA record you did not publish, that digit is the first thing worth checking.

    Guides to DANE tend to stop at the moment the first record goes live, which is the easy part. The hard part arrives sixty days later, and the measurements show how badly it goes: the 2022 USENIX Security study of SMTP DANE found that more than 87% of the servers it tracked rolled their keys over incorrectly, and that more than 94% of the hosts publishing TLSA records were using CA-issued certificates — the ones that get reissued on a schedule nobody at the mail server is watching. This page is about that schedule, and about the one field in the record that decides whether you ever have to think about it again.

    Why does DANE break when the certificate renews?

    DANE breaks on renewal because it is a pinning mechanism and a renewal moves the thing being pinned. A sending mail server that finds a usable TLSA record for your MX host compares what the host presents in the TLS handshake against the hash in that record. If nothing matches, the sender does not warn and does not downgrade to cleartext: under RFC 7672 it refuses the delivery, so the message sits in the sender's queue until it bounces.

    That is the correct behaviour, and it is the whole point of deploying DANE. Opportunistic SMTP TLS will happily accept any certificate at all, including one an attacker substituted, which leaves the encryption decorative. DANE closes the gap by making the DNS answer authoritative about which key is allowed. The cost of that guarantee is an ordering constraint: from the moment you publish a record, your DNS zone and your mail server have to agree about the key, and a renewal is an event that changes one of them.

    The failure is also quiet from your side. Your own monitoring sees a mail server with a valid, freshly renewed certificate answering on port 25. Nothing is down. The only symptom is mail that stops arriving from the subset of senders that validate DANE, which is why these incidents are usually reported by a customer rather than by a dashboard.

    How do you read a TLSA record?

    A TLSA record has an owner name that encodes the port and transport, then three numeric fields and a hash. The owner name for SMTP is _25._tcp.<mx-hostname>, using the hostname from your MX record rather than the domain in your email addresses. The three numbers are certificate usage, selector and matching type, defined in RFC 6698, and the hash is a digest of whichever structure the selector names.

    A labelled TLSA record for an SMTP host, naming the owner name, the certificate usage, selector and matching type fields, and the hashThe record shown is underscore 25, underscore tcp, mail.example.com, of type TLSA, with the values 3, 1, 1, followed by a 64-character hexadecimal hash. Callouts identify each part. The owner name encodes the port, 25, and the transport, tcp, prefixed to the MX hostname, and it must be the MX hostname rather than the mail domain. The first value, 3, is the certificate usage DANE-EE, meaning the record pins the end-entity certificate directly and the TLSA record is the trust anchor. The second value, highlighted in gold, is the selector: 1 selects the SubjectPublicKeyInfo and 0 would select the full certificate, and this is the field that decides whether a renewal breaks the record. The third value, 1, is the matching type SHA-256. The hash is the SHA-256 digest of whichever structure the selector named. A footnote records that usage 0, PKIX-TA, and usage 1, PKIX-EE, should not be published for SMTP because mail servers share no common list of trusted roots.A TLSA record, field by fieldRFC 6698 defines the fields · RFC 7672 narrows which values SMTP may use_25._tcp.mail.example.com.IN TLSA3117c5d1a90…e3f1Owner nameport 25, transport tcp, then theMX hostname — not the mail domainUsage 3 — DANE-EEthe record is the trust anchor;expiry and name checks do not applySelector1 = public key0 = whole certificatethis field decides renewalsMatching type 1 — SHA-2562 would be SHA-512; 0 means thefull value rather than a digestDo not publish for SMTPUsage 0 (PKIX-TA) and usage 1(PKIX-EE): mail servers share nocommon list of trusted roots, sosenders may treat them as unusable.
    The owner name is where most first attempts go wrong: it belongs on the MX hostname that answers on port 25, not on the domain in the email address.

    RFC 7672 narrows the field values that make sense for mail. Only the two DANE usages are useful: DANE-EE(3), which pins the end-entity certificate or its key directly, and DANE-TA(2), which pins a trust anchor the presented chain must reach. Usages PKIX-TA(0) and PKIX-EE(1) should not be published for SMTP, because mail servers share no common list of trusted roots, so a validating sender may treat such a record as unusable and you lose the protection without any warning.

    Usage 3 carries one consequence worth stating plainly, because it surprises people who come to DANE from the web PKI. With DANE-EE(3), RFC 7672 says the expiration date of the server certificate must be ignored, since the lifetime of the key binding comes from the validity interval of the TLSA record's DNSSEC signature instead. The same section says the server must be considered authenticated even when none of the names in the certificate match. An expired, self-signed certificate with the wrong hostname in it satisfies a matching DANE-EE record.

    Which TLSA combination should you publish?

    Publish 3 1 1 — DANE-EE usage, SPKI selector, SHA-256 matching. RFC 7672 names it as the recommended combination for SMTP, with 2 0 1 as a second choice. The selector is what earns the recommendation: hashing the SubjectPublicKeyInfo ties the record to the key pair rather than to one issued certificate, so a reissuance that keeps the key leaves the published value untouched.

    RecordWhat is pinnedSurvives a renewal?Expiry and names checked?
    3 1 1SubjectPublicKeyInfo of the server certificateYes, if the key pair is reusedNo
    3 0 1The full DER-encoded server certificateNeverNo
    2 0 1The issuing CA certificate, as a trust anchorYes, until the CA changes the intermediateYes
    0 x x / 1 x xPublic CA path, assuming a shared root storeNot applicableShould not be published for SMTP

    The 2 0 1 row deserves a note, because it looks like a way to make the problem disappear. Pinning the issuing CA certificate does survive key rotation, so renewals stop mattering. In exchange you give up the part of DANE-EE that ignores the chain: with DANE-TA the presented certificate has to validate to the pinned anchor, hostname checks against the MX name apply, and an expired certificate fails. RFC 7672 also requires the server to include the trust anchor certificate in the chain it presents, even when it is a self-signed root. And public CAs do replace intermediates, which turns a once-a-year renewal problem into an unpredictable one.

    Does your ACME client change the key on renewal?

    Assume it does until you have checked. Certbot generates a new private key on every renewal by default, which means a new SubjectPublicKeyInfo and a new SPKI hash, which means a 3 1 1 record that was correct yesterday is wrong today. Adding --reuse-key keeps the key pair across renewals, and it can be set per-certificate in the renewal configuration under /etc/letsencrypt/renewal/ or globally in cli.ini.

    This is the step that catches people who did everything else right. They read the RFC, published 3 1 1 because it is the stable one, and still lost mail two months later, because stability was a property of the key rather than of the record. Other ACME clients differ in both default and option name, so check yours against its own documentation rather than against Certbot's.

    Worth knowing either way: reusing a key indefinitely is a trade, not a free win. Rotating keys limits what a leaked one is worth, and a key that never changes undoes some of what shorter certificate lifetimes were introduced to achieve. A reasonable middle position is to reuse the key across routine renewals and perform one deliberate, scheduled key rollover a year with the overlap procedure below, rather than an accidental one every renewal.

    How do you roll over without losing mail?

    Publish the new record before you install the new certificate, and wait out the TTL in between. A validating sender treats the TLSA record set as a list of acceptable alternatives, so a host matching any one record authenticates. That makes a clean rollover four ordered steps: add the record for the incoming key, wait longer than the record's TTL so cached copies of the old answer have expired, install the certificate and restart the services that present it, then remove the record for the retired key.

    The four-step order for rolling a key under DANE, showing the overlap window in which both TLSA records are publishedA left-to-right timeline with four marked steps. Step one, publish the TLSA record for the new key alongside the record for the current key, so two records are live. Step two, wait longer than the record's TTL, which is highlighted in gold as the overlap window, so that every cached copy of the previous answer has expired; during this window a sender matching either record authenticates. Step three, install the new certificate and restart the services that present it. Step four, once nothing serves the old key, remove its TLSA record. Underneath, a second line shows the wrong order: installing the certificate first leaves a period in which the published record describes a key the server no longer presents, and mail from DANE-validating senders fails for the whole of it.Publish first, install second, prune lastThe order is the whole trick, and the wait is set by the TTLOverlap window — both records publisheda sender that matches either one authenticates1 · Publishnew record added2 · Waitlonger than the TTL3 · Installnew certificate, restart4 · Prunedrop the old recordOLD KEY RECORDNEW KEY RECORDThe wrong orderInstall the certificate first and the published record describes a key the server no longer presents. Mail from DANE-validating senders fails until DNS catches up.
    Nothing here is specific to DANE — it is the same publish-before-you-cut discipline any pinning mechanism needs. What makes it bite is that the wait is measured in cached TTLs rather than in how fast your DNS provider shows the change.

    The wait is the step that gets shortened, and it is the one that cannot be. What matters is not when your DNS provider shows the new record but when every resolver that cached the previous answer stops serving it, which is governed by the TTL you published with — plus, in a DNSSEC-signed zone, the time your signing setup needs to produce signatures over the new record set. Lowering the TTL on the TLSA record a day or two before a planned rollover shortens the window you have to sit through.

    Reversing the order is the version that breaks mail. Install first and there is a period, as long as the TTL, in which the published record describes a key the server no longer presents. During it, senders that validate DANE have exactly one correct behaviour available to them, which is to refuse the delivery. Nothing on your side looks wrong while it happens.

    On the mail server side, remember which services actually hold the certificate. A renewal hook that reloads Postfix leaves Dovecot presenting the previous one, and submission on port 587 or IMAPS on 993 can lag behind port 25. Our Postfix and Dovecot installation guide covers which files each daemon reads and what has to be reloaded after a renewal.

    What do 200-, 100- and 47-day certificates change?

    They multiply the number of times a year the rollover has to go right. CA/Browser Forum Ballot SC-081v3 phases the maximum validity of public TLS certificates down on a fixed schedule: 200 days for certificates issued on or after March 15, 2026, 100 days from March 15, 2027, and 47 days from March 15, 2029. Since a renewal is the event that moves the pin, each step is a step up in how often a DANE deployment is exposed to its weakest procedure.

    FromMaximum validityRenewals per year, at leastWhat that means for a TLSA record
    Before 15 Mar 2026398 days1An annual manual update was survivable
    15 Mar 2026200 days2Manual updates start getting missed
    15 Mar 2027100 days4Key reuse or automation, pick one
    15 Mar 202947 days8A per-renewal procedure is not viable by hand

    The renewal counts are floors derived from the maximum validity. Real deployments renew earlier than the expiry date — a third of the lifetime remaining is a common trigger, and ACME clients often use a fixed window — so the true number is higher in every row. The detail of the schedule, including the parallel cuts to how long domain validation evidence can be reused, is in our guide to the 2026 certificate validity changes.

    Read together with the USENIX finding, the arithmetic is uncomfortable. A procedure that already failed on more than 87% of measured servers when it ran once a year is about to run eight times a year. The answer is not a better calendar reminder. It is to remove the per-renewal step entirely by reusing the key, so that the only rollovers left are ones you chose to perform.

    Does MTA-STS have the same problem?

    No, because MTA-STS pins nothing. It publishes a policy saying which MX hosts are legitimate and that TLS is mandatory, and leaves the certificate check to the ordinary web PKI. A renewal therefore needs no coordination with DNS at all. What MTA-STS does instead is make the certificate a hard dependency of mail delivery in the other direction: RFC 8461 requires the MX host to present a certificate that is unexpired, chains to a root the sender trusts, and matches the host's DNS name, so under an enforced policy a renewal that fails to happen stops inbound mail.

    The two mechanisms fail in opposite directions, which is the argument for running both. DANE tolerates an expired, name-mismatched certificate and fails when the key moves without the record. MTA-STS tolerates any key change and fails when the certificate lapses or stops matching the hostname. A host that satisfies both has no single renewal mistake that takes mail down.

    Reachability settles the question in practice. Microsoft's Exchange Online has validated outbound SMTP DANE with DNSSEC since March 2022 and brought inbound support to general availability in 2024, with further admin control over DANE and MTA-STS validation on outbound connectors rolling out through early 2026. Google Workspace went the other way: it validates MTA-STS and does not validate DANE, so TLSA records buy nothing for mail arriving from Gmail. Publishing only one mechanism means choosing which half of your inbound mail goes unprotected.

    MTA-STS also costs a second certificate, which is the detail most often missed at rollout. The policy file is fetched over HTTPS from mta-sts.<your-domain>, and that host needs its own valid, publicly trusted certificate before you publish the TXT record, on top of the one your MX host presents. Both are ordinary publicly trusted SSL/TLS certificates; which names they need to carry is covered in our guide to choosing a certificate for a mail server.

    How do you tell a broken TLSA record from a working one?

    Compute the hash from the certificate the server is actually serving and compare it to the record in DNS. Two commands settle it. The first prints the SPKI digest that a 3 1 1 record should contain, and the second prints what you published. If the strings differ, you have found the outage.

    # what the server presents, as a 3 1 1 value
    openssl s_client -starttls smtp -connect mail.example.com:25 \
      -servername mail.example.com </dev/null 2>/dev/null \
      | openssl x509 -noout -pubkey \
      | openssl pkey -pubin -outform DER \
      | openssl dgst -sha256 -hex
    
    # what DNS says, and whether it is signed
    dig +dnssec TLSA _25._tcp.mail.example.com

    Check three things in the dig output, in this order. The answer must carry an RRSIG and validate, because an unsigned or bogus TLSA record is ignored by compliant senders — the USENIX study found that over 30% of the records it measured failed on the DNSSEC chain rather than on the hash. The owner name must be the MX hostname, not the mail domain. And the hash must match the output of the first command for at least one record in the set.

    Worth doing once in the other direction too: confirm what your MX host presents to the outside world, since multi-tenant platforms select certificates by SNI and the certificate you installed is not always the one being served. Our SSL checker reports the chain and expiry for a hostname, which is the quickest way to rule out a mismatch between what is on disk and what is on the wire.

    Then make the comparison continuous. The single most useful piece of monitoring for a DANE deployment is a check that recomputes the hash from the live handshake and alerts when it stops matching the published record set. It catches the broken rollover, the hook that did not fire, the daemon that was not reloaded and the expired DNSSEC signature, all with one test.

    The rollover decision, in one page

    The decision is about your renewal client, not your mail server. If the client keeps the private key, publish one 3 1 1 record and you are done until you choose to rotate. If it does not and cannot be made to, you own a per-renewal rollover and it has to be automated. Those are the only two stable positions.

    A decision tree for choosing a TLSA configuration, starting from whether the renewal client keeps the private key across renewalsThe tree starts with one question: does your renewal client keep the same private key across renewals? If yes, publish a single DANE-EE, SPKI, SHA-256 record and no per-renewal work is needed; this outcome is highlighted in gold. If no, the next question is whether key reuse can be enabled, for example with Certbot's reuse-key option. If it can, enable it and take the same gold path. If it cannot, there are two workable fallbacks: automate the publish, wait, install, prune sequence from the renewal hook so every renewal performs a full rollover, or publish a DANE-TA, certificate, SHA-256 record pinned to the issuing CA certificate, which survives key rotation but validates the chain, so expiry and hostname checks apply and the record must be updated when the CA changes its intermediate. A closing note warns that doing neither is the common case in measurements of live SMTP deployments.Which TLSA configuration do you need?It is a question about your renewal client, not about your mail serverDoes the renewal client keep the same private key?most ACME clients generate a fresh key by defaultyesnoPublish one record3 1 1no per-renewal work at alluntil you rotate the keyCan you turn key reuse on?Certbot: --reuse-keyyesnoAutomate the full rolloverpublish → wait past the TTL → install → prune,driven from the renewal hook, every timeOr pin the issuing CA instead2 0 1survives key rotation, but the chain is checked:expiry and names apply, and intermediates changeAlso required, either way· a DNSSEC-signed zone, kept signed· the record on the MX hostname· monitoring that compares the  published hash to the served one· MTA-STS for senders without DANEDoing none of the above is the common case: the 2022 USENIX measurement found over 87% of SMTP servers rolled over incorrectly.
    Follow the gold path if you can. The two fallbacks both work, but they add a moving part that has to keep working every 47 days instead of once a year.

    Whichever branch you land on, four things hold. The zone has to stay signed, because a lapsed signature takes DANE down as effectively as a wrong hash. The record belongs on the MX hostname. Monitoring has to compare the served key to the published one rather than merely checking that the record exists. And MTA-STS covers the senders that do not validate DANE, which includes the largest consumer mail provider there is.

    If you are planning a deployment from scratch rather than repairing one, the order that causes the least pain is: sign the zone, enable key reuse in the renewal client, verify the served SPKI hash by hand, publish the record with a short TTL, then raise the TTL once a renewal has passed through without incident. Automation built on ACME renewal hooks is what makes the last step hold at 47 days.

    Frequently Asked Questions

    Answers to common questions about certificates and our services.

    Why did my mail stop being delivered after I renewed my certificate?

    If you publish TLSA records, the likely cause is that the record still describes the old certificate. DANE is a pinning mechanism: a sending server that validates DANE compares what your MX host presents against the hash in your TLSA record, and a mismatch is a hard failure rather than a warning. Under RFC 7672 the sender must not fall back to cleartext once it has found usable TLSA records, so mail queues instead of arriving. Check the record against the live certificate before looking anywhere else — a renewal that changed either the certificate bytes or the public key is the single most common trigger.

    Does a TLSA record have to be updated every time the certificate renews?

    Not if you publish the combination RFC 7672 recommends. A 3 1 1 record hashes the SubjectPublicKeyInfo, which is derived from the public key rather than from the certificate, so the value is unchanged by a renewal that keeps the same key pair. A 3 0 1 record hashes the whole certificate and therefore changes on every single renewal, with no exceptions. The practical rule is that the record follows the key, so you only have a rollover to manage when you rotate the key.

    What is the difference between TLSA 3 1 1 and 3 0 1?

    The middle field is the selector. Selector 1 means the hash covers the SubjectPublicKeyInfo; selector 0 means it covers the full DER-encoded certificate. Both are DANE-EE usage 3 with SHA-256 matching, so both pin the end-entity directly, but only selector 1 is stable across reissuance of the same key. RFC 7672 names DANE-EE(3) SPKI(1) SHA2-256(1) as its recommended combination for SMTP, with DANE-TA(2) Cert(0) SHA2-256(1) as a second choice.

    Does DANE care whether my certificate has expired?

    Not with DANE-EE(3). RFC 7672 states that the expiration date of the server certificate must be ignored, because the lifetime of the key binding is set by the validity interval of the TLSA record's DNSSEC signature rather than by the certificate. The same section says the server must be considered authenticated even when none of the names in the certificate match the client's reference identity. DANE-TA(2) behaves differently: the presented chain has to validate to the pinned trust anchor, and the ordinary expiry and hostname checks do apply.

    Can I publish two TLSA records at the same time?

    Yes, and that is how a key rollover is supposed to be done. A sending server treats the TLSA record set as a list of acceptable alternatives, so a host that matches any one record authenticates. Publish the record for the incoming key alongside the record for the current one, wait longer than the record's TTL so that cached copies of the old answer have expired, install the new certificate, then remove the record for the retired key once nothing serves it.

    Does DANE work without DNSSEC?

    No. A TLSA record that is not covered by a valid DNSSEC chain is not usable, and a compliant sender ignores it as though it were absent. This is the most common deployment failure in the wild: the 2022 USENIX study of SMTP DANE found that more than 30% of the TLSA records it measured could not be validated because of a broken DNSSEC chain. Signing the zone is a prerequisite, not an enhancement, and a lapsed signature takes DANE down as effectively as a wrong hash.

    Do I still need a publicly trusted certificate if I deploy DANE?

    For DANE alone, no — a DANE-EE record makes the TLSA value the trust anchor, so a self-signed certificate satisfies it. In practice you still want a publicly trusted one, because senders that do not validate DANE fall back to ordinary PKIX checks and because MTA-STS requires an unexpired certificate that chains to a public root and matches the MX hostname. Google Workspace validates MTA-STS and does not validate DANE, so a mail host that only satisfies DANE is unprotected against a large share of the mail sent to it.

    Which providers actually validate DANE on outbound mail?

    Microsoft is the significant one: Exchange Online has supported outbound SMTP DANE with DNSSEC since March 2022 and brought inbound support to general availability in 2024, with further admin controls over DANE and MTA-STS validation on outbound connectors rolling out through early 2026. Google Workspace takes the other route and validates MTA-STS rather than DANE, so TLSA records bring no benefit for mail arriving from Gmail. Publishing both mechanisms is the only way to cover both senders.

    Still Have Questions?

    Contact our support team with questions about certificates, installation, or technical issues.

    If you are not sure which record you are running

    Send us the output of the two commands above and we will tell you whether your record survives your next renewal or breaks on it. If it turns out you need a certificate for the MX host or for the mta-sts policy host, we issue publicly trusted SSL/TLS certificates as a Certum partner, and we will tell you plainly when the answer is that your existing certificate already covers what you need.

    Related reading