TLS 握手需要多长时间
TLS 握手的耗时取决于网络往返延迟(RTT)、密钥交换算法、证书链长度、服务器性能及是否启用会话复用等,典型场景下:在无优化的 TLS 1.2 完整握手(含证书验证)中,单次握手通常需 1–3 个 RTT,对应实际耗时约 50–300 ms(以国内骨干网平均 RTT ≈ 15–40 ms 计);TLS 1.3 将完整握手压缩至 1-RTT(首次连接),且支持 0-RTT 模式(仅限幂等请求),可进一步降至 ≈ 20–100 ms。
实测数据表明,在北京→上海双线环境(平均 RTT 28 ms)下,Nginx + OpenSSL 3.0 部署 TLS 1.3 时,95% 分位握手延迟低于 85 ms;若证书链含 3 级(根→中间→叶)、且 OCSP stapling 未启用,因需额外 DNS 查询与 OCSP 响应验证,可能增加 30–120 ms。CDN 边缘节点启用会话复用(session resumption via tickets 或 cache)后,复用连接握手可低至 <1 ms(仅密钥确认开销)。
需要注意的情况
- 证书验证路径影响显著:若服务器未配置完整中间证书,客户端需自行下载补全,触发额外 HTTP 请求和证书吊销检查(CRL/OCSP),大幅延长握手;推荐使用 ssl证书工具 验证链完整性。
- TLS 1.3 的 0-RTT 存在重放风险:仅适用于 GET 类幂等请求,不适用于登录、支付等敏感操作;服务端需部署时间窗口或单次令牌机制缓解重放。
- 国密 SM2-SM4 组合握手略慢:因 SM2 签名验签运算强度高于 ECDSA P-256,在同等硬件下 TLS 握手延迟约高 10–25%,但 国密SSL证书 在政务、金融内网中仍为合规刚需。
- 移动端尤其敏感:3G/4G 网络下 RTT 波动大(常达 100–300 ms),TLS 1.2 握手易超 500 ms,显著影响首屏渲染;建议强制启用 TLS 1.3 与 session ticket 复用。
京公网安备11010502031690号
网站经营企业工商营业执照