Default to TLS 1.3, keep TLS 1.2 enabled only if clients need it, and disable TLS 1.0, 1.1 and every SSL version. OWASP says web applications must default to TLS 1.3, that RFC 8996 deprecated 1.0 and 1.1, and that SSLv2 and SSLv3 must always be off.
What TLS 1.3 changed
RFC 8446 defines TLS 1.3 and lists the differences from 1.2. In plain terms:
- Legacy ciphers were pruned, and what remains is all AEAD algorithms.
- Static RSA and Diffie-Hellman suites were removed, so every public key exchange gives forward secrecy.
- Compression was removed.
- All handshake messages after the ServerHello are encrypted.
- RSA signatures now use RSASSA-PSS, and SHA-1 signature schemes are legacy.
- A downgrade protection mechanism is built into the server random value.
One trade off is 0-RTT early data. RFC 8446 says it comes at the cost of certain security properties: it is not forward secret and replay protection is weaker. Only allow it for requests that are safe to replay.
A version policy you can write down
| Version | Action |
|---|---|
| TLS 1.3 | Enable and prefer |
| TLS 1.2 | Keep if real clients need it, with strong suites |
| TLS 1.1 and 1.0 | Disable |
| SSLv3 and SSLv2 | Disable, always |
Steps to roll it out
- Measure first. Log the negotiated protocol version for a week, so you know who still uses 1.2.
- Enable 1.3 everywhere you terminate TLS: load balancer, CDN, ingress, and the app itself if it listens directly.
- Disable 1.0 and 1.1 where logs show no legitimate traffic.
- Check certificates: names must match the server's fully qualified name, chains must come from a trusted CA, and OWASP says SHA-256 should be used rather than MD5 or SHA-1, with RSA keys of at least 2048 bits.
- Turn on HSTS for sites, which tells browsers to always request HTTPS and stops users from bypassing certificate warnings.
- Re-test after every infrastructure change.
Old clients
OWASP advises against weakening your main endpoint for legacy clients. Isolate them on a separate endpoint that has no access to sensitive data. That keeps the exception visible and easy to remove.
Try it yourself
Open the web app scan demo and look at how a scan reports transport and header findings. Think about which of those you could confirm on your own site today.
Click through it at your own pace, or open it full screen.
Safeguard can generate an SBOM and scan your dependencies, so outdated cryptography libraries with known advisories show up in one inventory, and policies can gate a build on them. A free scan is at gold.safeguard.sh/scan.
Quick check
Is TLS 1.2 still acceptable?
OWASP lets it stay for compatibility while defaulting to 1.3. Review it as your client mix changes.
Do internal services need TLS 1.3 too?
Apply the same policy where you control both ends. Internal traffic is often the easiest place to move first.
Sources
Last reviewed: 19 October 2026.