HTTPS = HTTP + TLS,在 TCP 之上、HTTP 之下加一层加密通道,提供机密性、完整性和身份认证。工作流程(TLS 握手,以 TLS 1.2 为例):

  1. TCP 三次握手建立连接。
  2. ClientHello:客户端发送支持的 TLS 版本、加密套件列表、随机数。
  3. ServerHello:服务器选定套件,返回随机数,并发送证书(含公钥)。
  4. 客户端验证证书:检查 CA 信任链、有效期、域名匹配;通过后生成"预主密钥",用服务器公钥加密发送。
  5. 双方用两个随机数 + 预主密钥各自算出对称会话密钥,此后 HTTP 数据用对称加密(如 AES-GCM)传输。

设计要点:用非对称加密交换密钥(解决密钥分发问题),用对称加密传输数据(性能高);证书 + CA 体系解决"公钥确实是对方的"这一身份认证问题。TLS 1.3 简化为 1-RTT 握手,废弃了 RSA 密钥交换,用(EC)DHE 实现前向安全性。

追问方向:对称与非对称加密的性能差异、前向安全、证书链验证过程、HTTPS 为什么不防内容篡改以外的所有攻击(如钓鱼)。