MX server TLS certificates
Valid certificates from Let's Encrypt by default (commercial CA on request) covering all MX hostnames with proper Subject Alternative Names. Certificate names align with policy MX patterns to avoid validation mismatches.
Standard SMTP encryption is opportunistic. Per RFC 3207, a sending mail server attempts STARTTLS, accepts whatever certificate the receiving server presents (including self-signed or expired ones), and falls back to plaintext if anything fails. A man-in-the-middle attacker can strip the STARTTLS advertisement from the SMTP handshake and both servers will deliver mail in cleartext without either side noticing. This is the downgrade attack described in RFC 8461. The default state of email transport in 2026 is: encrypted when convenient, cleartext when the attacker wants it that way.
MTA-STS (RFC 8461) fixes this. Your domain publishes a policy declaring that inbound mail must use TLS with a valid certificate from a trusted CA matching declared MX hostnames; sending servers that honor MTA-STS refuse to deliver if TLS negotiation fails. Gmail, Microsoft 365, Yahoo, and most major mail providers honor MTA-STS policies for outbound. The engagement deploys MTA-STS in testing mode first for 14-30 days to surface configuration issues via TLS-RPT (RFC 8460), then transitions to enforce mode after TLS-RPT confirms clean negotiation. Optional DANE TLSA records (RFC 7672) for DNSSEC-signed zones add cryptographic certificate binding. One-time EUR 249. Certificate renewal automation continues at no ongoing cost; the 14-30 day phased rollout is part of the engagement.
MTA-STS deployed straight to enforce mode regularly breaks legitimate inbound mail because of issues that would have been visible in TLS-RPT during testing. The phased rollout below is the standard. Click a phase to see what happens, what you should see in reports, and what triggers the move to the next phase.
Three approaches to SMTP encryption with different strengths, requirements, and operational profiles. The matrix below covers what each protocol does and when to deploy which. Most operations deploy MTA-STS first as the broad-compatibility baseline; DANE layers on top for DNSSEC-signed zones.
| Attribute | Opportunistic STARTTLS | MTA-STS (RFC 8461) | DANE (RFC 7672) |
|---|---|---|---|
| Encryption enforced | No (falls back to plaintext) | Yes (in enforce mode) | Yes |
| Defeats downgrade attacks | No | Yes | Yes |
| Trust model | None (accepts any cert) | CA-based (trusted root CAs) | DNS-based (DNSSEC + TLSA) |
| DNSSEC required | No | No | Yes |
| HTTPS endpoint required | No | Yes (mta-sts subdomain) | No |
| Gmail outbound support | Yes (default) | Yes (since 2018) | No (declined to implement) |
| Microsoft 365 outbound support | Yes (default) | Yes (since 2020) | Yes (since 2024) |
| Operational complexity | Low (default behaviour) | Medium (policy + HTTPS + cert) | High (DNSSEC + key rotation) |
| BSI TR-03108 compliance | Insufficient alone | Required component | Required component |
| This engagement covers | Baseline configured | DEFAULT SCOPE | OPTIONAL (DNSSEC zones) |
Operations needing BSI TR-03108 compliance (German federal email security standard) get all three deployed in the engagement. Operations without DNSSEC get MTA-STS plus TLS-RPT as the standard baseline. Operations with existing DNSSEC and inclined toward defence in depth get all three as well; we document the additional operational overhead of DANE key rotation and recommend it only when the customer commits to that operational load.
SMTP was designed in 1982 with no encryption. RFC 3207 added STARTTLS in 2002 as an opportunistic upgrade: if both servers support TLS, use it; if not, fall back to plaintext. The opportunistic model worked well enough for the early 2000s when the main alternative was no encryption at all. It did not anticipate active network attackers willing to spend real effort intercepting email in transit. By the mid-2010s, security researchers had documented repeated cases of STARTTLS being stripped by middleboxes (some by accident, some deliberately) and mail being silently delivered in cleartext. The 2015 EFF disclosure about ISPs in Thailand and Tunisia systematically stripping STARTTLS was the public inflection point; the industry response was MTA-STS and DANE.
MTA-STS (RFC 8461) ships in 2018. The mechanism: a receiving domain publishes a policy file via HTTPS at a predictable subdomain and a DNS TXT record pointing to it. The policy declares which MX hostnames serve inbound mail, requires valid TLS certificates from trusted CAs matching those hostnames, and sets a policy lifetime (max_age) typically between several days and one year. Sending servers that honor MTA-STS fetch the policy, cache it for max_age, and refuse to deliver mail to the domain if TLS negotiation fails or the receiving server does not match the policy patterns. The HTTPS hosting requirement ensures the policy itself cannot be tampered with in transit; the CA trust model handles certificate authenticity. By 2026, Gmail, Microsoft 365, Yahoo, AOL, and most other large mail providers honor MTA-STS for outbound mail.
TLS-RPT (RFC 8460) ships alongside MTA-STS in 2018 as the observability layer. Without TLS-RPT, MTA-STS fails silently from the publishing domain's perspective: if a sending server cannot fetch your policy or your certificate is broken, you do not find out unless someone complains. TLS-RPT publishes a DNS TXT record at _smtp._tls.yourdomain.com specifying an email address where sending servers should deliver daily aggregate reports about their TLS negotiation experience with your MX hosts. The reports are JSON-formatted, structured around per-sender statistics, and surface specific failure categories: certificate name mismatch, certificate expired, policy fetch failure, STARTTLS not advertised, STARTTLS stripped. The practical value is enormous for operations because it catches certificate or policy misconfigurations before they become customer-visible delivery failures.
DANE (RFC 7672) takes a different approach. Rather than relying on the CA trust model, DANE binds TLS certificates to your domain through TLSA records published in DNS, protected by DNSSEC. The advantage is that DANE removes the Certificate Authority from the trust model. A rogue CA cannot issue a fraudulent certificate that bypasses your policy because the TLSA record specifies exactly which certificate or key is authorised. The disadvantage is operational weight. DANE requires DNSSEC throughout the resolution chain, which not all domains have. DANE requires DNSSEC-validating resolvers on the sending side, which most large ISPs and security-focused recursive resolvers support but not all do. DNSSEC misconfigurations cause complete domain resolution failure rather than just TLS failure, which makes the failure mode more severe. Gmail declined to implement DANE for outbound mail despite supporting MTA-STS, citing inconsistent DNSSEC adoption globally. Microsoft 365 added DANE support for outbound in 2024 alongside their MX shift.
The phased rollout pattern matters because MTA-STS deployed directly to enforce mode regularly breaks inbound mail for operational reasons that would have been visible in testing. Common issues: certificate name does not match the MX hostname (the cert covers mail.example.com but the MX record points to mx1.mailhost.example), missing intermediate certificate in the chain after a routine renewal, backup MX server has an expired certificate that nobody noticed because primary MX handles all traffic, MTA-STS policy declares MX patterns that do not match actual MX records. Each of these surfaces within 24-48 hours in TLS-RPT during testing mode and gets fixed before transition to enforce. The DCHost guide updated November 2025 documented exactly this pattern with a real client case where MTA-STS testing surfaced an intermittent chain issue on a backup MX that nobody had noticed; the fix was trivial once visible. Without TLS-RPT and the testing phase, the issue would have stayed invisible until enforce mode blocked legitimate mail.
The 2026 deployment context adds urgency. Microsoft announced in January 2026 that indirect MX configurations could allow attackers to spoof internal identities by bypassing SPF, DKIM, and DMARC, with MTA-STS as part of the mitigation recommendation. The BSI TR-03108 German federal standard mandates MTA-STS, TLS-RPT, and DANE in unison for compliance with federal email security requirements; financial services and government contractors in Germany have moved this from optional to required during 2025-2026. Microsoft's MX shift from protection.outlook.com to mx.microsoft enabled inbound DANE support, making the full three-protocol stack viable on managed Microsoft 365 infrastructure for the first time. The operational pattern in 2026 is: MTA-STS plus TLS-RPT is the baseline expectation; DANE is recommended for operations with DNSSEC; all three together meet the strongest compliance bars.
Valid certificates from Let's Encrypt by default (commercial CA on request) covering all MX hostnames with proper Subject Alternative Names. Certificate names align with policy MX patterns to avoid validation mismatches.
HTTPS endpoint at mta-sts.yourdomain.com with valid TLS certificate. Minimal nginx configuration serving only the static policy file at the required .well-known path. No other functionality exposed.
Policy file with version STSv1, initial mode testing, declared MX patterns matching your actual MX records, and conservative max_age (typically 86400 seconds during testing, 604800 during enforce). Policy ID versioning for clean updates.
_mta-sts.yourdomain.com TXT record with policy version reference. Configuration coordinated with your existing DNS provider (we can do this through ASH-managed DNS or coordinate with customer-managed DNS).
Receiving mailbox provisioned for TLS-RPT aggregate reports. _smtp._tls.yourdomain.com TXT record with mailto destination. Initial parser configuration for daily report ingestion and summary visualisation.
certbot or equivalent automation for Let's Encrypt renewals running at standard 60-day cadence with 30-day pre-expiry alerts to monitored mailbox, 14-day escalation alerts, and 7-day critical alerts. Commercial CA workflow if customer prefers longer validity periods.
Testing mode deployed at engagement completion. TLS-RPT monitored daily during 14-30 day testing window. Issue identification and resolution as reports surface them. Transition to enforce mode after clean reports across major senders for 7 consecutive days.
For DNSSEC-signed zones: TLSA records published for MX hostnames with usage 3 (DANE-EE) selector 1 (SPKI) matching type 1 (SHA-256). Key rotation procedure documented. Skipped entirely for non-DNSSEC zones.
These are the recurring problems that show up in TLS-RPT data during the testing window. Each gets fixed before transition to enforce mode. The phased rollout exists specifically to catch these without blocking legitimate mail.
MX record points to mx1.mailhost.example but the certificate only covers mail.yourdomain.com. Senders honoring MTA-STS see the mismatch and either fail (enforce mode) or report it (testing mode). Fix: align certificate SAN with actual MX hostnames or update policy patterns to match cert.
Server presents leaf certificate but skips the intermediate, leaving senders unable to build a trust chain to a root CA. Common after routine renewals where automation copies the leaf but not the chain. Fix: deploy full fullchain.pem rather than cert.pem alone.
Primary MX renews automatically, backup MX server certificate expired six months ago because nobody checks it. Senders that try the backup get TLS failure. Fix: extend renewal automation to cover all MX hosts, not just primary.
Policy file declares mx: mail.example.com but actual MX record is mx-01.example.com. Senders see the mismatch and report it. Fix: align policy patterns with actual MX records (wildcards like *.example.com help if multiple MX share a domain).
Some sending networks have middleboxes that strip STARTTLS advertisements (intentional or misconfigured). Senders see no encryption available and report the failure. Fix: nothing on your side (the issue is sender-network), but TLS-RPT data documents which senders are affected for sender outreach.
Sender cannot fetch the policy file from mta-sts.yourdomain.com. Causes: HTTPS endpoint down, certificate expired, DNS not resolving for the subdomain. Fix: monitor the mta-sts subdomain HTTPS availability separately from main domain with its own renewal automation.
Healthcare, financial services, legal, regulated communications. Inbound email may carry sensitive data and opportunistic encryption is insufficient for compliance posture. MTA-STS plus TLS-RPT moves you from opportunistic to enforced encryption with visibility.
German federal email security standard mandates MTA-STS plus TLS-RPT plus DANE for compliance. The engagement covers all three for operations needing BSI alignment (financial services, federal contractors, certain healthcare).
Operations using managed email providers benefit from MTA-STS protecting the inbound path to those providers. Microsoft 365 and Google Workspace handle their MX server certificates automatically; the engagement handles the policy and DNS configuration that completes the transport security picture.
Operations running Postfix, Exim, or commercial MTAs on their own infrastructure. The engagement handles certificate provisioning, renewal automation, and MTA-STS configuration end-to-end for self-hosted MX hosts.
Operations with multiple MX records (primary plus backup, geographic distribution, load balancing). The engagement handles certificate coverage across all MX hosts and policy patterns that accommodate the multi-MX setup correctly.
Operations that already run DNSSEC get the full three-protocol deployment (MTA-STS plus TLS-RPT plus DANE) at no additional cost. The DNSSEC prerequisite is the operational barrier; once that exists, layering DANE on top is straightforward.
A one-time engagement deploying the full SMTP transport security stack on your sending and receiving infrastructure. The deliverables: valid TLS certificates from a recognised Certificate Authority (Let's Encrypt by default, commercial CA available on request) covering MX hostnames and the mta-sts subdomain; certificate renewal automation through certbot or equivalent with 30-day pre-expiry alerts; MTA-STS policy hosting at the required HTTPS endpoint with the mode set to testing initially; DNS configuration for _mta-sts and _smtp._tls TXT records; TLS-RPT receiving mailbox setup with aggregate report parsing; phased transition from testing to enforce mode after 14-30 days of clean TLS-RPT data; optional DANE TLSA records published for DNSSEC-signed zones; documentation covering certificate locations, renewal procedures, policy versioning, and incident response. One-time engagement EUR 249, delivery in 3 business days.
Standard SMTP encryption is opportunistic. According to RFC 3207, a sending mail server attempts STARTTLS, accepts whatever certificate the receiving server presents (including self-signed or expired ones), and falls back to plaintext if anything fails. A man-in-the-middle attacker can strip the STARTTLS advertisement from the SMTP handshake and both servers will deliver mail in cleartext without either side noticing. This is called a downgrade attack. MTA-STS (RFC 8461) fixes this by letting your domain publish a policy that says: when you deliver email to my domain, you must use TLS with a valid certificate from a trusted CA matching my declared MX hostnames; if TLS negotiation fails, do not deliver, do not fall back to plaintext. Gmail, Microsoft 365 (since 2020), and most major mail providers honour MTA-STS policies for outbound mail. Without MTA-STS, your email confidentiality during transit depends on attackers not bothering to intercept; with MTA-STS, the encryption is enforced by policy.
The MTA-STS policy declaration accepts three mode values: none, testing, and enforce. None signals that you do not maintain an MTA-STS policy (default before deployment). Testing mode publishes the policy and signals to sending servers that they should report TLS negotiation failures via TLS-RPT, but mail still gets delivered even if TLS fails or the certificate does not match. Enforce mode publishes the policy and instructs sending servers to refuse delivery if TLS negotiation fails or the receiving server does not match the policy MX patterns. We always deploy in testing mode first for 14-30 days. The TLS-RPT data during the testing window surfaces any misconfiguration (certificate name mismatches, missing intermediate certs, MX pattern mismatches, expired certs on backup MX hosts) before they would block real mail. Once TLS-RPT shows clean negotiation across senders, we transition to enforce mode. Switching directly to enforce without testing risks blocking legitimate inbound mail because of misconfigurations that would have been visible in TLS-RPT.
DANE (RFC 7672) is technically stronger but operationally more demanding. DANE binds TLS certificates to your domain through TLSA records published in DNS, requiring DNSSEC to be enabled on the parent zone. The advantage over MTA-STS: DANE removes the Certificate Authority from the trust model, so a rogue CA cannot issue fraudulent certificates that bypass your policy. The disadvantages: DANE requires DNSSEC throughout the resolution chain, requires DNSSEC-validating resolvers on the sending side (most large ISP resolvers and security-focused recursive resolvers do), and DNSSEC misconfigurations cause complete domain resolution failure rather than just TLS failure. Gmail has not implemented DANE for outbound mail despite supporting MTA-STS, citing inconsistent DNSSEC adoption globally. Our recommendation: deploy MTA-STS first as the broad-compatibility baseline. Add DANE as an additional layer if you already have DNSSEC enabled on your domain. Skip DANE if you do not have DNSSEC. The German BSI TR-03108 standard mandates all three (MTA-STS, TLS-RPT, DANE) for compliance with German federal email security requirements; operations needing BSI alignment get all three deployed.
Aggregate reports from sending mail servers describing their TLS negotiation experience with your inbound MX hosts. Reports are JSON-formatted documents (RFC 8460) delivered daily to the email address you publish at _smtp._tls.yourdomain.com. Each report covers a 24-hour window and includes per-sender data on: successful TLS connections (count, certificate chain validation results, policy fetch successes), failed TLS connections with failure categorisation (certificate validation failure, certificate name mismatch, certificate expired, policy fetch failure, STARTTLS not advertised, STARTTLS stripped by middlebox), and aggregate counts per failure category. The practical value: visibility into TLS failures that would otherwise be silent. Without TLS-RPT, an expired certificate on a backup MX host or a middlebox stripping STARTTLS would cause mail to be delivered in cleartext (or rejected if MTA-STS is in enforce mode) and you would never know unless senders complained. With TLS-RPT, you receive structured daily reports that surface these issues. Google, Microsoft, Yahoo, and most major mail providers send TLS-RPT reports for inbound MTA-STS-protected domains.
The MTA-STS specification requires the policy file to be served via HTTPS at https://mta-sts.yourdomain.com/.well-known/mta-sts.txt with a valid TLS certificate covering the mta-sts subdomain. The hosting options vary by infrastructure. Default approach: host on ASH infrastructure with Let's Encrypt automated certificate renewal. The HTTPS endpoint runs as a minimal nginx config serving only the static policy file with no other functionality. Alternative approaches we support: Cloudflare Pages with automatic SSL (free hosting), Cloudflare Workers (free, requires Worker code), GitHub Pages with custom domain (free, requires repository management), customer-managed web server if you already operate one with HTTPS. We document the specific hosting approach in your deployment runbook and handle certificate renewal automation regardless of approach. The policy file content includes the version (STSv1), mode (testing or enforce), authorised MX hostname patterns, and max_age (between several days and one year). Policy updates require incrementing the id field in the DNS TXT record to signal sending servers to re-fetch.
Two distinct failure modes depending on which certificate expires. If the MX server TLS certificate expires while MTA-STS is in enforce mode, sending servers honoring MTA-STS will refuse delivery to your domain until the certificate is renewed. Inbound mail bounces with TLS validation failures. TLS-RPT will surface this within 24 hours of expiry. If the mta-sts subdomain HTTPS certificate expires, sending servers cannot fetch the MTA-STS policy file. They will use their cached policy until the max_age expires, then either fall back to opportunistic TLS or refuse delivery depending on sender-side configuration. To prevent these scenarios, the engagement deploys certbot or equivalent automation with 30-day pre-expiry alerts to a monitored mailbox, 14-day escalation alerts to on-call rotation, and 7-day critical alerts requiring immediate response. Most certificates auto-renew without incident; the alert hierarchy exists specifically for the rare cases where renewal fails (rate limiting, DNS validation failures, expired payment methods on commercial CAs). Operations that prefer commercial CAs with longer validity periods (1-year certs from DigiCert or Sectigo) can request that configuration; the engagement supports both Let's Encrypt automation and commercial CA workflows.
Non-disruptive deployment because MTA-STS adds a security layer rather than changing existing email flow. Your current SMTP traffic continues working exactly as it does today during and after the engagement. The engagement adds three new things: a TLS certificate for the mta-sts subdomain (does not affect existing certificates), DNS TXT records for _mta-sts and _smtp._tls (does not affect existing DNS records), and a policy file served on a new HTTPS endpoint (does not affect existing web infrastructure). The testing-mode deployment confirms everything works without affecting deliverability. Transition to enforce mode happens only after TLS-RPT confirms clean TLS negotiation. The engagement coordinates with your existing infrastructure: if you use Microsoft 365 or Google Workspace for inbound mail, the MTA-STS policy lists those MX patterns; if you use Postfix or similar on ASH infrastructure, the policy lists your MX hostnames; mixed configurations (some traffic to Microsoft 365, some to ASH) are supported by listing multiple MX patterns in the policy.
Telegram conversation establishes MX hostnames, DNS provider, DNSSEC status, hosting platform for the mta-sts subdomain, and preferred CA. Initial setup delivered in 3 business days with MTA-STS in testing mode. 14-30 day testing window with TLS-RPT monitoring. Transition to enforce mode after clean reports. One-time EUR 249. Renewal automation continues at no ongoing cost.
# Median Telegram response: 12 minutes during operating hours