首页/安全/加密与证书速查/HelloRetryRequest(TLS 1.3 重试机制)
本包目录(305 条)
加密算法基础95 条
TLS 与 HTTPS60 条
证书与 PKI30 条OpenSSL 实战30 条证书运维排查49 条密钥管理41 条

HelloRetryRequest(TLS 1.3 重试机制)

当客户端 key_share 未覆盖服务端偏好的组时,服务端先回 HelloRetryRequest 要求换组,客户端再发一次 ClientHello,会额外增加一个半往返。

加密与证书速查安全更新于 2026-10-12
触发条件首个 ClientHello 未提供匹配的 key_share(例如只带 x25519 而服务端偏好 P-256)
代价多一次往返;内网影响小,跨地域链路会明显增加建连延迟
观察方式抓包看是否出现两个 ClientHello,或用 s_client 配合 -msg 观察
优化服务端配置多样的 supported_groups,客户端预置常见组

观察 HRR 是否发生

观察 HRR 是否发生
openssl s_client -connect example.com:443 -servername example.com -msg </dev/null 2>&1 | grep -ci 'hello retry'
HRR 不是错误而是正常协商路径;若大量连接都触发 HRR,说明双方组配置不匹配,值得调整。

易错点

  • 把 HRR 当成握手失败排查(实际握手成功,只是多一跳)
  • 忽略组配置不一致造成的长尾延迟,在高延迟链路上用户可感知

数据来源与参考

  • RFC 8446 §4.1.4(HelloRetryRequest)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌