Notes on TLS 1.3 Key Shares, ALPN, and Session Tickets
TLS 1.3 trimmed a full round trip from session establishment by pairing supported groups and key shares right inside the initial ClientHello. When debugging latency or unexpected protocol downgrades, inspecting those first two flights usually tells the whole story.
Checking Negotiated Parameters from the CLI
Using OpenSSL directly shows the active curve, cipher suite, and ALPN choice without browser caching interference:
openssl s_client -connect example.com:443 -servername example.com -alpn h2 </dev/null | grep -E "Protocol|Cipher|ALPN|Server Temp Key|Verify"
Practical Server Defaults
For static sites behind modern reverse proxies, three small knobs cover most compatibility and security needs:
- Enable both
TLSv1.3andTLSv1.2so legacy monitoring probes still complete cleanly while modern browsers negotiate 1.3. - Advertise
h2andhttp/1.1via ALPN so browsers multiplex CSS and JS assets over one TCP socket. - Disable static session ticket keys unless you explicitly rotate them across nodes, preserving forward secrecy across restarts.