SSL/TLS 握手(Handshake)是 HTTPS 连接建立过程中最关键的一步。它的主要目的是在客户端(如浏览器)和服务器之间协商加密算法、验证身份,并生成用于后续通信的对称加密密钥(Session Key)。 目前主流的协议版本是 TLS 1.2 和 TLS 1.3。TLS 1.3 是最新标准,速度更快、更安全,但 TLS 1.2 依然广泛使用。 为了让你更容易理解,我们以经典的 TLS 1.2 为例进行详细拆解,最后再对比 TLS 1.3 的改进。 --- 核心目标 握手过程主要为了达成以下共识: 1. 加密套件:用什么算法加密?用什么算法校验数据完整性? 2. 身份验证:服务器(有时候也包括客户端)是真的吗?(通过证书) 3. 生成密钥:双方生成一个只有彼此知道的“会话密钥”(Session Key),用于后续的数据传输。 --- TLS 1.2 握手详细流程 (4次挥手类似,这里是4步主要交互) 可以将握手过程想象成两个人(爱丽丝和鲍勃)在商量怎么用暗号传纸条。 第一步:Client Hello(客户端打招呼) 客户端(浏览器)向服务器发起请求,发送以下信息: 支持...