首页/安全/加密与证书速查/读懂 ClientHello 消息
TLS 与 HTTPS60 条

读懂 ClientHello 消息

ClientHello 是客户端发起握手的首条消息,包含版本、随机数、会话 ID、套件列表与扩展(SNI、ALPN、supported_groups、key_share 等),是定位握手失败的主要现场。

加密与证书速查安全更新于 2026-10-12
版本字段legacy_version 固定 0x0303,真实支持版本放在 supported_versions 扩展里
关键扩展server_name(SNI)、application_layer_protocol_negotiation、key_share、signature_algorithms
随机数32 字节 client_random,参与密钥派生
可见性ClientHello 在 TLS 1.2 与 1.3 中均为明文,可直接读到 SNI 与套件列表

打印握手消息查看

打印握手消息查看
openssl s_client -connect example.com:443 -servername example.com -msg </dev/null 2>&1 | head -40
# 抓包方式(需有采集环境)
# tshark -i eth0 -Y 'tls.handshake.type == 1' -V
TLS 1.3 的兼容写法让记录层版本看起来仍是 1.2,判断客户端真实能力要看 supported_versions 扩展而不是记录版本号。

易错点

  • 只看记录层版本 0x0303 就判定客户端不支持 TLS 1.3(该值只是兼容写法)
  • 以为握手消息都会一直明文:TLS 1.3 从 ServerHello 起即加密

数据来源与参考

  • RFC 8446 §4.1.2(ClientHello)
  • RFC 6066(SNI 扩展)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌