Why Use SSL Certificates and the Latest TLS Version
The little padlock in the address bar represents one of the most important pieces of web infrastructure: TLS (Transport Layer Security), the protocol behind HTTPS. It's enabled by an SSL/TLS certificate. Let's cover why certificates matter, why the TLS version you run matters just as much, and how to configure it well.
What an SSL/TLS certificate actually does
- Encryption: it secures the connection so data — passwords, payment details, session cookies — can't be read by anyone between the user and your server.
- Integrity: it ensures the data isn't altered in transit by a man-in-the-middle.
- Authentication: it proves the server really is the domain it claims to be, using a certificate signed by a trusted Certificate Authority (CA).
Why you need one, even for a "simple" site
- Browsers mark plain HTTP sites as "Not secure," scaring away visitors.
- HTTPS is a confirmed SEO ranking signal.
- Modern browser features (HTTP/2, service workers, geolocation) require HTTPS.
- Without it, anyone on the same network can read or tamper with your traffic.
And thanks to Let's Encrypt, certificates are free and automatable — there's no cost reason to skip HTTPS anymore.
Why the TLS version matters
A certificate enables encryption, but the TLS protocol version determines how strong and fast that encryption is. Older versions have known weaknesses:
- SSL 2.0 / 3.0 — obsolete and insecure. Disable entirely.
- TLS 1.0 / 1.1 — deprecated, vulnerable to several attacks. Disable them.
- TLS 1.2 — still secure and widely used; the safe minimum.
- TLS 1.3 — the current standard: faster handshakes, forward secrecy by default, and legacy weak ciphers removed.
TLS 1.3 isn't just more secure — it's faster. Its streamlined handshake needs fewer round trips, so connections establish quicker, which improves real-world page load times.
Configuring modern TLS (Nginx)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_stapling on;
ssl_stapling_verify on;Configuring modern TLS (Apache)
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLHonorCipherOrder off
SSLSessionTickets off
SSLUseStapling onDon't forget the boring part: expiry
The strongest TLS config in the world fails the moment the certificate expires — and every visitor then sees a security warning. Automate renewal (Certbot, or a server like Caddy that does it for you), and independently monitor the expiry date as a safety net, because automation quietly breaks more often than you'd think.