tls.version.tls13_only
TLS 1.3 Only
What we check
We attempt handshakes with TLS 1.0, 1.1, 1.2, and 1.3 against each MX IP. This finding is emitted when TLS 1.3 is the only version the server accepts — TLS 1.2 is refused and the deprecated versions are disabled.
What this finding means
The server runs the most modern transport configuration there is: only TLS 1.3, with its mandatory forward secrecy and AEAD-only cipher suites. From a security standpoint there is nothing to fix.
The trade-off is interoperability. SMTP transport encryption is opportunistic: a sending server that cannot negotiate TLS 1.3 — an older MTA, an appliance, a library pinned to TLS 1.2 — fails the STARTTLS handshake. Depending on the sender's policy it then retries, defers, or delivers in plaintext. Mail is not lost, but a share of inbound traffic may arrive unencrypted or late.
This is a warning about other people's software, not about yours. It is graded far below the deprecated-protocol findings so that a TLS-1.3-only server always outscores one that still accepts TLS 1.0 or 1.1.
Why it matters
- Plaintext fallback. Most senders fall back to an unencrypted session when STARTTLS fails, unless MTA-STS or DANE forbids it. A 1.2-only sender therefore delivers to you in the clear.
- Deferred delivery. Senders that require TLS (their own policy, or your MTA-STS enforce policy) retry and eventually bounce.
- Shrinking population. TLS 1.2-only senders are a declining minority; as of 2026 the large providers all negotiate TLS 1.3. For most domains the practical impact is small.
How to fix
Nothing is required for security. If you want to maximise compatibility with older senders, offer TLS 1.2 in addition to 1.3 with modern cipher suites only — this is a compatibility choice, not a hardening step:
# /etc/postfix/main.cf
smtpd_tls_protocols = >=TLSv1.2
smtpd_tls_mandatory_protocols = >=TLSv1.2
smtpd_tls_ciphers = high
Verify that TLS 1.2 now negotiates while 1.0 and 1.1 stay off:
openssl s_client -starttls smtp -connect mail.example.com:25 -tls1_2 </dev/null 2>/dev/null | grep Protocol
openssl s_client -starttls smtp -connect mail.example.com:25 -tls1_1 </dev/null 2>&1 | grep -E "Protocol|error"
How it's graded
A 5-point deduction in the TLS category, as a warning. Compare TLS 1.0 support at −20 and TLS 1.1 at −10: a TLS-1.3-only server ranks above any server that still accepts a deprecated version. See Grading Methodology.
Evidence example
TLS 1.0 handshake: refused
TLS 1.1 handshake: refused
TLS 1.2 handshake: refused (protocol version)
TLS 1.3 handshake: OK — TLS_AES_256_GCM_SHA384