关于TLS 1.2版本中TLS重协商的相关技术问询
TLS 1.2重协商相关技术问题解答
问题1:在已建立的TLS 1.2连接的整个生命周期内,SSL会话ID是否保持恒定?
通常来说,TLS 1.2连接的SSL会话ID在整个生命周期里是恒定的。会话ID的核心作用是标识可复用的会话上下文,只要连接没有被主动终止,也没有触发会生成新会话的操作,初始协商得到的会话ID就不会改变。当然这是标准实现的逻辑,少数自定义实现可能有特殊处理,但符合TLS 1.2规范的实现都会遵循这个规则。
问题2:若TLS 1.2支持TLS重协商,在同一连接上进行重协商时,SSL会话ID是否保持不变?
分两种场景:
- 如果是**安全重协商(遵循RFC 5746)**且只是重新确认会话参数而非创建新会话,原有会话ID会保持不变;
- 如果重协商过程中主动发起了新会话的建立(比如客户端明确请求新会话,或者服务器选择生成新会话上下文),则会生成新的会话ID替换原有值。
简单说,重协商本身不一定会改变会话ID,关键看是否触发了新会话的创建。
问题3:在TLS重协商过程中,是否允许更新SAN值?
SAN是证书的扩展字段,TLS重协商本质是重新执行握手流程,服务器在这个过程中可以选择出示新的证书——只要新证书包含更新后的SAN值,且能通过客户端的验证,就完全允许。不过实际业务场景中,大部分服务器会复用初始握手时的证书,但TLS 1.2规范并没有限制重协商时更换证书的行为。
内容的提问来源于stack exchange,提问作者Sumi Silky
相关产品推荐
相关产品推荐

