SSL Toolkit Logo

SSL/TLS ServerHello Analyzer

Analyze ServerHello responses and cipher negotiation

Analyzing ServerHello...

ServerHello Analysis

TLS Version

Selected Cipher

Cipher Bits

ALPN Protocol

Session ID

About Server Hello Analyzer

Analyzes TLS Server Hello responses to identify selected cipher suites, protocol versions, and extensions. Reveals server-side TLS configuration choices.

How to Use

  1. 1Enter your domain name and optional port number
  2. 2Click "Analyze ServerHello" to capture the response
  3. 3Review selected cipher, protocol version, and extensions

Use Cases

  • •Verify server TLS configuration choices
  • •Debug handshake issues and failures
  • •Compliance checking for cipher suite policies

Frequently Asked Questions

The server's reply to a Client Hello, and the point in the handshake where the negotiation is settled. It carries the protocol version and cipher suite the server has chosen, the session identifier or ticket, and in TLS 1.3 the key share needed to complete the exchange. Reading it tells you what was actually selected rather than what was offered, which is what makes it the right place to check whether a client and server really agreed on what they were both capable of.
Client Hello lists all supported options, while Server Hello contains the single selected option from those lists. The server picks the best mutually supported cipher suite.
Check that the selected cipher suite is secure, the TLS version is modern (1.2 or 1.3), and session resumption is configured. Use the SSL Hardening Config tool to improve weak configurations.
The symmetric key length of the negotiated suite: 128 bits for the AES-GCM and ChaCha20 suites in common use. It says nothing about the public-key algorithm doing the key exchange, which is why a 128-bit label is not by itself a weakness finding. What matters is the combination, and this site reports both sides — the suite name and the certificate's key — on the pages dedicated to each.
Because TLS 1.3 replaced session identifiers with session tickets, which resumption no longer keys on a server-issued id. Modern servers negotiating 1.3 therefore show none, and that is the expected result rather than a missing feature. Session identifiers remain relevant to resumption on TLS 1.2, where seeing one confirms the mechanism is in use.
No, and the page says so with an empty list rather than filling it with plausible-looking entries. Python's TLS layer does not expose that part of the message, so any list shown would be invented. The client-hello page covers extensions from the client side, where the library does expose them, and the extension analyzer is the tool for a full picture.
Most often the server has no application protocol configured for that server block, so it declines to negotiate and the client falls back to HTTP/1.1. It can also mean a proxy is terminating TLS without passing ALPN through, which is common where the edge and origin run separate software. Everything still works, so the finding is usually a performance one rather than a breakage.
Granularity. The timeline page narrates the whole handshake in order and is the better read for understanding how a connection forms. This page is a single snapshot of the server's choices — version, cipher, application protocol, session id — which makes it the better tool for comparing hosts or confirming a configuration change took effect.

What Comes From the Handshake

The ServerHello is the server's answer: what it chose from what the client offered. This page opens a live handshake offering HTTP/2 and HTTP/1.1, then reports the choices the server made.

  1. 1Report the selected protocol and cipher exactly as the server chose them, with the cipher's key length. This is the outcome of negotiation rather than a configured preference — the distinction that matters when a server appears configured one way and behaves another.
  2. 2Report the negotiated application protocol from ALPN. Offering both h2 and http/1.1 and recording what came back tells you whether HTTP/2 is actually reachable, which configured ALPN lists do not prove.
  3. 3Report the session identifier for resumption, or none. TLS 1.3 relies on session tickets rather than identifiers, so none is the normal modern answer rather than a finding.

The extension list is reported empty. Python's TLS layer does not expose the ServerHello extensions, and an earlier version of this page returned a fixed three-entry list that looked measured but was a constant — worse than reporting nothing. The client-hello page documents extensions from the side that can read them.

Tips & Best Practices

  • •Analyze ServerHello messages to understand server TLS configuration
  • •Use ServerHello analysis to verify server cipher and protocol selection
  • •Compare ServerHello messages from different servers for consistency
  • •Monitor ServerHello patterns for security configuration verification

Technical Details

Message: TLS ServerHello message structure and content analysis
Fields: Selected version, cipher suite, session ID, extensions
Selection: Server cipher and protocol selection analysis
Output: ServerHello analysis with selected parameters