HTTPS的执行流程
HTTPS的执行流程是通过SSL/TLS协议在HTTP基础上实现加密通信的过程,主要分为TCP连接建立、TLS握手协商密钥、加密数据传输三个阶段。以下是详细流程及核心机制:
一、TCP连接建立
- 客户端发起TCP连接
用户在浏览器输入HTTPS网址(如https://example.com
),客户端向服务器发送TCP SYN包,发起三次握手请求。- 三次握手:客户端发送SYN → 服务器返回SYN-ACK → 客户端发送ACK确认,完成TCP连接建立
二、TLS握手与密钥协商
-
客户端发起TLS握手请求(Client Hello)
客户端发送Client Hello
消息,包含支持的TLS版本、加密套件列表(如AES、RSA)、压缩算法及一个随机数(Client Random) -
服务器响应(Server Hello)
服务器返回Server Hello
消息,确认使用的TLS版本、加密套件、压缩算法,并发送一个随机数(Server Random)和数字证书 -
证书验证
客户端验证服务器证书的有效性,包括:-
证书是否由受信任的CA颁发
-
证书是否过期或被吊销
-
域名是否匹配
若验证失败,连接终止;若通过,客户端生成预主密钥(Pre-Master Secret)
-
-
密钥交换
-
非对称加密传递预主密钥:客户端用服务器公钥加密预主密钥并发送给服务器
-
生成会话密钥:客户端与服务器基于Client Random、Server Random和预主密钥,通过算法生成对称会话密钥(Session Key)
-
前向保密(可选):若使用Diffie-Hellman算法,即使私钥泄露,历史会话仍无法被解密
-
三、加密数据传输
-
加密通信
-
客户端和服务器交换
Finished
消息,确认握手完成 -
对称加密传输数据:所有后续数据均用会话密钥加密(如AES),保障传输效率
-
完整性校验:通过消息验证码(MAC)或哈希函数(如SHA)验证数据是否被篡改
-
-
连接关闭
通信结束后,双方终止连接并丢弃会话密钥
四、核心机制与优化
- 混合加密:非对称加密协商密钥(安全但慢) + 对称加密传输数据(高效)
- 会话复用:若客户端与服务器曾建立连接,可复用会话密钥,减少握手次数
- HTTP/2支持:通过多路复用和头部压缩提升HTTPS性能
总结
HTTPS通过证书验证身份、混合加密保障机密性、完整性校验防篡改,实现了安全通信。其核心流程可简化为:
TCP连接 → TLS握手(验证证书+密钥协商) → 对称加密传输数据。现代HTTPS还通过会话复用、前向保密等技术进一步优化安全性和性能