{"post":{"slug":"ssl-tls-explained-2026","title":"SSL/TLS explained in 2026: how HTTPS actually secures your connection","excerpt":"TLS 1.3 is now the minimum bar, certificate lifetimes are shrinking to 90 days, and post-quantum handshakes are shipping. Here is the full picture.","category":"code","date":"April 7, 2026","author":"ByteLedger Team","content":"<span class=\"dropcap\">T</span>LS — Transport Layer Security — is the protocol that puts the \"S\" in HTTPS. When your browser shows a padlock, TLS is negotiating a secure channel between your machine and the server before any application data is exchanged. SSL was the predecessor; the name \"SSL\" persists in conversation but SSL 2.0 and 3.0 are long deprecated. Everything in 2026 runs TLS 1.2 at minimum, and TLS 1.3 should be your floor.\n\n## What changed in 2026\n\n- **TLS 1.3 is the only acceptable version.** TLS 1.0 and 1.1 have been disabled by all major browsers since 2020. TLS 1.2 is still broadly supported but its weaker cipher suites are increasingly blocked by compliance scanners.\n- **Certificate lifetimes are now capped at 90 days.** Apple's CA/Browser Forum proposal passed: as of March 2026, publicly trusted certificates max out at 90-day validity. ACME automation is no longer optional.\n- **Post-quantum cryptography shipped.** Chrome and Firefox both default to hybrid key exchange (X25519Kyber768 — classical ECDH plus ML-KEM-768) to protect against \"harvest now, decrypt later\" attacks by future quantum computers.\n- **QUIC / HTTP/3 uses TLS 1.3 internally.** The TLS handshake is embedded inside the QUIC protocol, completing in 0-RTT on resumed connections.\n\n## How the TLS 1.3 handshake works\n\n```\nClient                                     Server\n  |── ClientHello (key_share, ciphers) ──→  |\n  |← ServerHello + Certificate + Finished ─|\n  |── Finished ──────────────────────────→  |\n  |═══════════ Encrypted data ═══════════   |\n```\n\nTLS 1.3 does this in **1 round-trip** (1-RTT). The client includes its key share in the first message, so the server can derive the shared secret immediately and send its certificate and Finished message together. TLS 1.2 required 2-RTT.\n\nOn a resumed session (session ticket), TLS 1.3 supports **0-RTT early data** — the client can send application data with the first message. The tradeoff is that 0-RTT data is not replay-protected; only use it for idempotent requests.\n\n## Certificate anatomy\n\nA TLS certificate is an X.509 document containing:\n\n- **Subject** — the domain(s) it is valid for (CN + SANs)\n- **Issuer** — the Certificate Authority that signed it\n- **Public key** — the server's asymmetric public key\n- **Validity period** — notBefore and notAfter timestamps\n- **Signature** — CA's digital signature over the above\n\n```bash\n# Inspect a live certificate\nopenssl s_client -connect example.com:443 -servername example.com 2>/dev/null \\\n  | openssl x509 -noout -text | grep -A2 \"Subject:\\|Validity\\|Subject Alternative\"\n```\n\n## Certificate types\n\n| Type | Validation | Use case |\n| --- | --- | --- |\n| DV (Domain Validation) | Proves domain control only | Most sites; free via Let's Encrypt |\n| OV (Organization Validation) | Proves org identity | Corporate sites |\n| EV (Extended Validation) | Full legal entity verification | Financial institutions |\n| Wildcard | Covers `*.example.com` | Multi-subdomain deployments |\n| Multi-SAN | Multiple distinct domains on one cert | SaaS with many domains |\n\nFor most developers in 2026, a DV cert from Let's Encrypt (free, 90-day, auto-renewed) is the right choice.\n\n## ACME automation\n\nACME (Automated Certificate Management Environment) is the protocol Let's Encrypt standardized. Your server proves domain control via HTTP-01 or DNS-01 challenge, and the CA issues a certificate automatically.\n\n```bash\n# Certbot standalone (for a server not yet serving HTTPS)\ncertbot certonly --standalone -d example.com -d www.example.com\n\n# Certbot with Nginx (auto-configures and renews)\ncertbot --nginx -d example.com\n\n# cert-manager in Kubernetes (ClusterIssuer resource)\nkubectl apply -f - <<EOF\napiVersion: cert-manager.io/v1\nkind: ClusterIssuer\nmetadata:\n  name: letsencrypt-prod\nspec:\n  acme:\n    server: https://acme-v02.api.letsencrypt.org/directory\n    email: ops@example.com\n    privateKeySecretRef:\n      name: letsencrypt-prod\n    solvers:\n      - http01:\n          ingress:\n            class: nginx\nEOF\n```\n\nCaddy handles ACME entirely automatically with zero configuration — it obtains and renews certificates for every domain in its config.\n\n## Cipher suites in TLS 1.3\n\nTLS 1.3 reduced the cipher suite list to three, eliminating all the weak options that existed in TLS 1.2:\n\n| Cipher suite | AEAD | Hash |\n| --- | --- | --- |\n| TLS_AES_256_GCM_SHA384 | AES-256-GCM | SHA-384 |\n| TLS_AES_128_GCM_SHA256 | AES-128-GCM | SHA-256 |\n| TLS_CHACHA20_POLY1305_SHA256 | ChaCha20-Poly1305 | SHA-256 |\n\nAll three are considered secure in 2026. ChaCha20-Poly1305 is preferred on mobile where hardware AES acceleration is absent.\n\n## How to pick your TLS configuration\n\n1. **Minimum TLS version: 1.2**, but prefer enforcing **TLS 1.3 only** for internal services where you control both sides.\n2. **Automate certificates** with ACME (Certbot, cert-manager, Caddy, or your CDN/load balancer).\n3. **Enable HSTS** with a long max-age (1–2 years) and include subdomains once you are confident all properties serve HTTPS.\n4. **Set OCSP stapling** on your server so clients do not need to make a separate revocation check.\n5. **Test with SSL Labs** (ssllabs.com/ssltest) — aim for A+.\n\n## Common mistakes\n\n**Not automating renewal.** A 90-day cert that expires causes immediate downtime. Certificate expiry is one of the most preventable outages.\n\n**Using a self-signed cert in production.** Browsers show scary warnings. Users leave. Even internal services should use a private CA or Let's Encrypt.\n\n**Forgetting HSTS preloading.** Without HSTS, a user's first visit over HTTP is vulnerable to downgrade attacks. Submit to the HSTS preload list for maximum protection.\n\n**Mixing TLS 1.2 and 1.3 without understanding cipher suite overlap.** If you allow TLS 1.2, also disable weak ciphers like `RC4`, `3DES`, and all `_NULL_` suites explicitly.\n\n**Ignoring certificate transparency logs.** CT logs are public; monitor them (e.g., via crt.sh) so you know when someone issues a cert for your domain.\n\n## What to skip\n\n- **Rolling your own crypto** — use a well-maintained TLS library (OpenSSL, BoringSSL, rustls). Cryptography is an area where bespoke code reliably fails.\n- **Extended Validation certs for most use cases** — browsers removed the EV green bar years ago; the UX benefit is gone.\n- **Pinning certificates in long-lived apps** — certificate pinning causes catastrophic breakage when certs rotate; use public key pinning sparingly and only with a backup pin.\n\n## FAQ\n\n**What is the difference between SSL and TLS?**\nSSL 2.0 and 3.0 were the original protocol. TLS 1.0 was the rename/redesign in 1999. Both SSL versions are broken and disabled everywhere. When people say \"SSL\" they almost always mean TLS.\n\n**Does TLS protect against a compromised CA?**\nPartially. Certificate Transparency (CT) logs and CAA DNS records help detect misissuance, but they do not prevent it in real-time. DNSSEC + CAA + CT monitoring is the defense-in-depth approach.\n\n**What is mutual TLS (mTLS)?**\nIn standard TLS only the server presents a certificate. In mTLS the client presents one too, authenticating both sides. This is common in service meshes (Istio, Linkerd) and zero-trust network architectures.\n\n**How does post-quantum TLS work?**\nThe key exchange phase uses a hybrid algorithm: classical X25519 ECDH plus ML-KEM-768 (formerly Kyber). Both secrets are combined; an attacker needs to break both to recover the session key.\n\n## Where to go next\n\n- [DNS explained in 2026](/blog/dns-explained-2026)\n- [CDNs explained in 2026](/blog/cdns-explained-2026)\n- [Reverse proxies explained in 2026](/blog/reverse-proxies-explained-2026)","hue":311,"metaTitle":"SSL/TLS Explained in 2026: How HTTPS Secures Your Connection","metaDescription":"Plain-language guide to TLS in 2026. How the handshake works, TLS 1.3 vs 1.2, certificate lifetimes, post-quantum crypto, and automation best practices.","keywords":["ssl tls explained 2026","how https works 2026","tls 1.3 explained","tls handshake","ssl certificate 2026","lets encrypt 90 day certificate","post quantum tls 2026","acme certificate automation","tls best practices 2026","https security 2026"],"tldr":["**TLS is a handshake protocol** — client and server negotiate a shared symmetric key using asymmetric cryptography, then encrypt all data with it.","**TLS 1.3 cut the handshake to 1-RTT** (from 2-RTT in TLS 1.2), reducing connection setup latency by one full round-trip.","**Certificates now expire in 90 days by default** via Let's Encrypt and Apple's CA/Browser Forum push — automate renewal or face downtime.","**Post-quantum key exchange (X25519Kyber768) shipped** in Chrome 124 and is default in all major browsers in 2026; your TLS library needs to support it.","**Skip:** manually managing certificate renewals — use ACME automation (Certbot, cert-manager, Caddy) and treat manual renewal as a last resort."],"readTime":"5 min read","wordCount":1145},"related":[{"slug":"how-to-set-up-ssl-2026","title":"How to set up SSL in 2026: TLS, certificates, and HTTPS done right","excerpt":"HTTPS is non-negotiable in 2026 — browsers flag plain HTTP, and search engines penalize it. Here is how to get certificates, configure TLS, and stay secure.","category":"code","date":"April 3, 2026","author":"ByteLedger Team","readTime":"4 min read","hue":309},{"slug":"http-vs-https-2026","title":"HTTP vs HTTPS in 2026: why plain HTTP is effectively dead","excerpt":"HTTPS is no longer optional and has not been for years. This 2026 guide explains the technical differences, TLS 1.3 improvements, and what still trips teams up.","category":"code","date":"March 18, 2026","author":"ByteLedger Team","readTime":"5 min read","hue":306},{"slug":"dns-explained-2026","title":"DNS explained in 2026: how domain name resolution actually works","excerpt":"DNS is the phonebook of the internet — but in 2026 it also handles service discovery, failover, and encrypted queries. Here is the full picture.","category":"code","date":"March 10, 2026","author":"ByteLedger Team","readTime":"5 min read","hue":310}],"sameCategory":[{"slug":"bazel-build-explained-2026","title":"Bazel Explained: What Hermetic Builds Actually Cost","excerpt":"Bazel delivers reproducible, precisely cached builds and demands that you describe everything. Here is what you get, what it costs, and who should say no.","category":"code","date":"August 19, 2026","author":"ByteLedger Team","readTime":"3 min read","hue":145},{"slug":"graphql-federation-2026","title":"GraphQL Federation: One Graph, Many Teams","excerpt":"Federation composes independently-owned subgraphs into a single API. Here is what it solves, the operational cost it adds, and when a simpler gateway is enough.","category":"code","date":"August 19, 2026","author":"ByteLedger Team","readTime":"3 min read","hue":300},{"slug":"hermetic-builds-explained-2026","title":"Hermetic Builds Explained: Same Inputs, Same Output","excerpt":"A hermetic build depends only on declared inputs. Here is what that property gives you, the common leaks that break it, and how to move toward it incrementally.","category":"code","date":"August 19, 2026","author":"ByteLedger Team","readTime":"3 min read","hue":130},{"slug":"monorepo-tooling-compared-2026","title":"Monorepo Tooling Compared: What You Actually Need","excerpt":"Monorepo tools solve task orchestration and caching, not repository layout. Here is what each tier provides and how to tell when you have outgrown the simple option.","category":"code","date":"August 19, 2026","author":"ByteLedger Team","readTime":"3 min read","hue":150}],"newer":{"slug":"sql-for-beginners-2026","title":"SQL for beginners in 2026: the queries you will actually use","excerpt":"SQL is the most widely-used data language in software and the most skipped by beginners. This guide teaches the queries that cover 90% of real work.","category":"code","date":"April 7, 2026","author":"ByteLedger Team","readTime":"5 min read","hue":310},"older":{"slug":"student-loan-refinancing-explained-2026","title":"Student Loan Refinancing Explained for 2026","excerpt":"Refinancing can lower your student loan rate, but you trade away federal protections. Here is how to tell if it makes sense for your 2026 situation.","category":"finance","date":"April 7, 2026","author":"ByteLedger Team","readTime":"4 min read","hue":38}}