Skip to content

HTTPS 与 TLS

加密体系、TLS 握手流程、证书链。

Updated View as Markdown
For humans

HTTPS 与 TLS

HTTPS = HTTP + TLS(传输层安全)。面试主线:解决什么问题、握手怎么交换密钥、证书怎么信任。

解决三个问题

问题 机制
窃听 对称加密(会话密钥加密数据)
篡改 MAC/哈希校验(完整性)
冒充 数字证书(身份认证)

混合加密体系

  • 对称加密(AES):快,适合加密数据,但密钥分发难
  • 非对称加密(RSA/ECC):慢,适合交换密钥,公钥公开私钥保密
  • 实际方案:非对称交换对称密钥,对称加密数据(混合加密)

TLS 握手(1.2)

TLS 1.2 握手: 非对称换密钥, 对称传数据

握手要点:

  • 双方交换随机数 + 客户端生成预主密钥(公钥加密传输),三者派生会话密钥
  • 证书验证:客户端验证服务端证书是否可信(证书链 → 根证书)
  • 之后所有数据用对称密钥加密(AES),性能可接受

TLS 1.3 的变化

  • 握手从 2-RTT 降到 1-RTT(甚至 0-RTT 恢复):ClientHello 里直接带密钥共享(ECDHE)
  • 移除旧的不安全套件(RSA 密钥交换、静态 DH)
  • 前向保密成为默认:每次握手临时密钥,私钥泄露也解不开历史流量
  • 考点:1.3 更快 + 更安全,说“1-RTT + 默认前向保密”即可

证书体系

证书链: 逐级信任到内置根

  • 证书 = 公钥 + 域名 + 有效期 + 签发者签名
  • 验证:从服务端证书沿签发链查到内置根证书,验签通过即可信
  • 自签名证书:不在信任链,浏览器报错(内网/测试用)
  • 证书失效/过期是生产事故常见原因(HTTPS 报错排查第一步)

面试追问

  1. HTTPS 怎么防窃听? 对称加密数据。密钥通过非对称加密安全交换(混合加密)
  2. TLS 握手做了什么? 协商套件 → 服务端发证书 → 客户端验证并加密传输预主密钥 → 派生会话密钥 → 对称通信
  3. 证书是干什么的? 证明“我是 example.com”:公钥 + 签名链到内置根。防冒充
  4. TLS 1.3 改进? 1-RTT 握手(0-RTT 恢复)、默认前向保密、移除弱套件
  5. 前向保密? 每次握手用临时密钥(ECDHE),长期私钥泄露也解不开历史流量
Navigation

Type to search…

↑↓ navigate↵ selectEsc close