已建立的SSL连接有效期是多久?重复请求是否需要重新协商对称密钥?
SSL 密钥交换复用规则解答
你的猜测完全正确,是否需要重新执行对称密钥交换流程和连接状态直接相关,具体规则如下:
- 同一条持久连接场景:HTTP/1.1 默认开启的 Keep-Alive、HTTP/2/3 原生的连接复用机制下,只要底层 TCP/QUIC 连接没有断开,对应的 SSL/TLS 会话就会持续生效。首次握手协商出的对称密钥会被复用,后续所有请求(包括你提到的
hello 2请求)都可以直接用该密钥加密传输,不需要重新走密钥交换流程,直到连接主动关闭为止。 - 短连接场景:如果每次请求完成后都会断开底层 TCP 连接,下次发起新请求时需要重新建立 SSL/TLS 会话,必须执行完整的密钥交换流程。
- 连接断开后的会话复用场景:就算连接已经断开,主流 SSL/TLS 实现都支持会话 ID、会话票据(Session Ticket)机制,只要会话还在服务端/客户端的缓存有效期内(通常为几小时到数天),重新建立连接时可以走简化握手流程,不需要执行完整的密钥交换,协商新对称密钥的开销会远低于首次完整握手。
特殊情况例外:如果 SSL/TLS 会话缓存到期、服务端/客户端清空了会话缓存、或者双方开启了前向安全相关的强制重协商配置,才会要求每次新建连接都执行完整的密钥交换流程。
内容的提问来源于stack exchange,提问作者Foo
相关产品推荐
相关产品推荐

