Network Troubleshooting Guide

TLS Handshake Failure: Find the Cause in a PCAP

When a secure site will not open, the TLS handshake in a packet capture shows why: the alert the server sent and the side that has to change

Why a Secure Site Will Not Open

A TLS handshake fails when the client and the server cannot agree on how to secure the connection. The side that gives up usually says why, with a fatal alert: no common TLS version or cipher suite, a certificate it does not trust, or a host name it does not serve. The handshake travels before encryption starts, so a packet capture shows the attempt and the alert even for HTTPS.

For users it is only "this site can't provide a secure connection" in one application or one browser, often after an update on one side. The network is fine, other HTTPS sites open, and the fix belongs to whoever runs the server or the client software.

What users notice

One portal or API fails with a secure-connection error, while other HTTPS sites work.

What a capture shows

A client hello, then a fatal TLS alert and a close, on every attempt to that server.

What the PcapAI Report Shows

In the sample capture, two laptops try to open a supplier portal at portal.example.net and also visit another HTTPS site on the same path. PcapAI reports one problem and places it on the server:

  • ✦TLS handshakes fail: 8 of 8 handshakes with the portal ended with a fatal alert, handshake_failure from the server: no common cipher suite or parameters.
  • ✦The network is not at fault: TCP connections, packet loss and latency are clean, and the other HTTPS site completes its handshakes.
  • ✦Who fixes it: the server or application owner, acting on the alert reason. For handshake_failure that means aligning cipher suites; a version alert means enabling TLS 1.2 or 1.3 on both sides; certificate alerts mean installing the right intermediate and root certificates; unrecognized_name means fixing the server name (SNI) configuration.
  • ✦How to confirm the fix: the TLS handshake with the portal completes.

The sample capture behind this page was built in a lab: every server uses a documentation address (RFC 5737) and a documentation name (RFC 2606), and the PDF is the unedited report PcapAI wrote for it.

How It Looks in a Capture (Check It Yourself)

In Wireshark, the first filter shows fatal alerts, the second the client hellos they answer:

tls.alert_message.level == 2
tls.handshake.type == 1

From the command line, who sent each alert and which one:

tshark -r capture.pcap -Y tls.alert_message -T fields -e ip.src -e tls.alert_message.desc

Common TLS Alerts and What They Point At

AlertUsually meansUsually fixed by
handshake_failureNo common cipher suite or parametersServer owner, sometimes the client software
protocol_versionNo common TLS versionWhichever side only offers old versions
unknown_ca, bad_certificate, certificate_unknownThe certificate chain is not trustedServer owner: install the intermediate certificates
unrecognized_nameThe server does not serve the requested host nameServer owner: fix the virtual host or SNI setup

PcapAI also checks TLS handshakes that hang, connections cut right after the client hello, slow handshakes, servers that still use TLS older than 1.2, and expired or self-issued certificates where TLS 1.2 still shows them.

Common Causes of TLS Handshake Failures

  • ✦The server was hardened and no longer accepts the cipher suites an older client offers.
  • ✦The client only supports TLS versions the server has turned off.
  • ✦The server sends its certificate without the intermediate certificate.
  • ✦The host name the client asks for is not set up on the server (SNI).
  • ✦A TLS-inspecting proxy or firewall on the path ends handshakes it cannot inspect.

The alert in the capture tells these apart, and the report turns it into the fix for the right side.

From Capture to Fix

  1. Capture on the client while it tries to open the failing site.
  2. Upload the capture: the free summary names the server and the alert.
  3. From a host you control, repeat the handshake read-only: openssl s_client -connect portal.example.net:443 -servername portal.example.net prints the negotiation and the alert.
  4. After the change, capture again: the report's own check is a completed handshake.

Frequently Asked Questions

What does a TLS handshake_failure alert mean?

The side that sent it found no acceptable combination of cipher suite and parameters in what the other side offered. It is a configuration mismatch between client and server, not a network fault.

Can a packet capture show why HTTPS fails if the traffic is encrypted?

Yes. The client hello, the server hello and any alert during the handshake travel before encryption starts, so the capture shows the versions and cipher suites offered and the alert that ended the attempt. Only the content after a completed handshake is encrypted.

Why does the site work in one browser but not in another application?

Each TLS client offers its own list of versions and cipher suites. An older application or a hardened server can leave no overlap for one client while a modern browser still finds one. The capture shows exactly what the failing client offered.

Check your own capture

Capture the failing connection and upload it: the free summary shows in about two minutes which server ends the TLS handshake and with which alert, and the $9 PDF adds the attempts, the evidence and the fix for its owner.

Sample Report: Executive Summary

PcapAI sample troubleshooting report: all TLS handshakes with a portal fail with a handshake_failure alert from the server
Download Full PDF Report The full PDF, as a customer receives it. What every report contains →

Network slow or dropping connections?

Skip the manual Wireshark filters. Upload the capture: the free summary shows the problems in about two minutes, and the $9 PDF adds the affected hosts, the fault domain and the fix.

Prefer to work from your editor? You can also analyze PCAPs in Claude Desktop via our MCP server.