首页/网络/网络排障速查/TLS 握手判读:SNI、套件与 Alert

TLS 握手判读:SNI、套件与 Alert

TLS 层排障看三样:Client Hello 的 SNI(是否发对域名)、协商出的版本与套件、以及失败时的 Alert 描述;再结合证书链检查。

网络排障速查网络更新于 2026-10-13

TLS 握手看什么

TLS 握手阶段的抓包能回答三个问题:客户端有没有把正确的域名送出去(Client Hello 的 SNI 扩展)、双方谈成了什么版本与加密套件(Server Hello 与扩展)、失败时对方或中间设备给了什么告警。TLS 1.2 及之前证书以明文传输,可以直接读签发者与有效期;TLS 1.3 起 Server Hello 之后的所有握手内容全部加密,抓包只能看到 Client Hello 与 SNI。握手失败有两种形态:收到 Alert 说明对端明确拒绝,没收到 Alert 而连接直接断,通常是中间设备截断或策略丢包。

基本信息

适用工具Wireshark 4.x / tshark,需能解密时才看得到证书
关键字段tls.handshake.type、tls.handshake.extensions_server_name、tls.alert_message
握手类型号1 客户端问候、2 服务端问候、11 证书(1.2)、16 客户端密钥交换
版本差异TLS 1.3 用 supported_versions 扩展表达版本,不再直接写在记录头

典型使用场景

  • 客户端报证书错误:先确认 Client Hello 的 SNI 是否写对了域名,再看证书链是否完整
  • 握手失败却看不到 Alert:怀疑中间设备截断,改用两端对照抓包夹逼
  • 套件协商失败:把客户端提供的套件列表与服务端策略逐项比对
  • 确认实际使用的版本:读 Server Hello 的版本与 supported_versions 扩展
  • 回源证书不匹配:CDN 回源时 SNI 与 Host 头不一致导致的证书错误

TLS 过滤速查

TLS 过滤速查
tls.handshake.type == 1                          # Client Hello,客户端问候
tls.handshake.extensions_server_name contains "example.com"   # 按 SNI 筛
tls.handshake.type == 2                          # Server Hello,服务端问候
tls.alert_message                                # 所有告警报文
tls.handshake.type == 11                         # Certificate,TLS 1.2 可见
_tls.record.version == 0x0303 && tls.handshake.type == 1  # 记录层显示 1.2,以扩展为准

常见 Alert 判读

Alert含义下一步
handshake_failure无共同套件或服务端策略拒绝比对双方套件与协议版本
unknown_ca证书链不受信检查根证书与中间证书是否补齐
protocol_version版本不兼容核对双方允许的最低版本
bad_certificate证书损坏或校验失败openssl s_client 复核证书链
access_denied客户端证书或策略拒绝检查 mTLS 配置与 ACL
unrecognized_nameSNI 不被服务端接受确认虚拟主机与 SNI 对应关系
TLS 1.3 抓包里找不到证书不是解析器坏了,而是协议本身把证书加密封装了;此时改用 openssl s_client -connect host:443 -servername host 观察握手与证书。
用密钥日志解密 TLS 流量属于敏感操作:密钥文件一旦落盘即可还原全部会话内容,只在受控排障环境启用并及时清理。

易错点

  • TLS 1.3 抓包看不到证书就怀疑抓包工具或解析有问题:是协议本身加密了证书
  • 忽略 SNI 与实际 Host 不一致导致的证书错误,常见于 CDN 回源与多域名共用 IP
  • 只盯服务端抓包:客户端与服务端之间的中间设备主动断开时,两边都看不到 Alert
  • 把记录层的版本号当成协商结果:TLS 1.3 记录层可能显示 1.2,真实版本要看扩展

数据来源与参考

  • RFC 8446:TLS 1.3 握手与告警
  • Wireshark 文档:TLS dissector 字段

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌