HTTPS 相比 HTTP 多了哪些核心步骤?证书校验主要在防什么?
HTTPS 比 HTTP 多的核心步骤
HTTP 通常是:TCP 连接 -> 直接发 HTTP 明文请求
HTTPS 通常是:TCP(或 QUIC)连接 -> TLS 握手 -> 再发 HTTP(加密)
多出来的关键是 TLS 握手:
- 客户端发
ClientHello(支持的 TLS 版本、加密套件、SNI、ALPN 等) - 服务端回
ServerHello+ 证书链(并选定加密参数) - 客户端做证书校验(域名、有效期、签名链、是否受信任等)
- 双方做密钥交换(常见 ECDHE),生成会话密钥
- 发送
Finished,后续 HTTP 数据全部加密传输
证书校验主要在防什么
核心是在防 “你以为连的是A站,实际连到攻击者”,也就是:
- 中间人攻击(MITM)
- 假冒网站/伪造服务器身份
- DNS/路由劫持后被导向假站
本质上保障三件事:
- 身份真实性(确实是目标域名对应服务器)
- 传输机密性(内容不被窃听)
- 传输完整性(内容不被篡改)