webzod
account

Turn off TLS 1.0 and 1.1

tls.protocols.legacy_enabled · effort: minutes

Why it matters

TLS 1.0 and 1.1 are deprecated and no current browser uses them, but leaving them on lets attackers and old tools negotiate weaker encryption. Turning them off costs almost nothing today.

Staged change. Do this in stages and check each one before the next, so a mistake does not break your site or your mail.

The fix

  1. Stage 1, check who still uses the old versions. In the web server log, record the protocol per request ($ssl_protocol in nginx, %{SSL_PROTOCOL}x in Apache). Everything current speaks TLS 1.2, so only very old systems such as Windows XP or old embedded devices will show up.
  2. Stage 2, allow only TLS 1.2 and 1.3 in the web server, CDN or load balancer.
  3. Test with the commands below that TLS 1.2 still works and TLS 1.1 is refused. Roll back by restoring the previous setting if a client you need breaks.
  4. If TLS is terminated by a proxy or managed platform, change the setting there, not on the origin behind it.
bash
openssl s_client -connect example.com:443 -servername example.com -tls1_2 </dev/null 2>&1 | grep -E "Protocol|Cipher"
# "alert protocol version" or "New, (NONE)" = TLS 1.1 refused (good); "New, TLSv1.x, Cipher is ..." = still enabled
# "no protocols available" = your local OpenSSL cannot test it
openssl s_client -connect example.com:443 -servername example.com -tls1_1 -cipher 'DEFAULT:@SECLEVEL=0' </dev/null 2>&1 | grep -E "^New|alert|no protocols"

The examples use example.com. Replace it with your own domain.

Read the documentation (opens in a new tab)

Scan your domain to see whether this applies to you.