The TLS handshake is the negotiation that begins every HTTPS connection. The client and server agree on a protocol version and cipher suite, the server proves its identity with a certificate, and both derive shared session keys.
Why it matters
A failed or slow handshake means no secure connection at all, producing browser warnings or connection errors. Handshake cost counts toward page load time: TLS 1.3 needs one round trip, while TLS 1.2 needs two, and session resumption can skip most of the work. Certificate problems, unsupported versions and mismatched cipher suites are the usual failure causes.
Example
$ openssl s_client -connect example.com:443 -servername example.com
Protocol : TLSv1.3
Cipher : TLS_AES_256_GCM_SHA384
Verify return code: 0 (ok)
The server negotiated TLS 1.3 and its certificate chain validated.
Common mistakes
- Forgetting the SNI hostname when testing, which returns the wrong certificate.
- Serving an incomplete certificate chain that works in some browsers but not others.
- Leaving legacy TLS versions enabled after clients no longer need them.
Related
Get notified when this term updates
Plus occasional practical tips on uptime and monitoring, nothing else. Unsubscribe anytime.
This page is general information written by our editorial team and updated when documentation changes. Servers and providers differ, so test changes safely first. See our editorial policy and disclaimer.