HTTPS 的握手过程你能讲清楚吗?

前端开发第 4 / 13 题答题框架
参考思路:对称+非对称结合的原因→证书链验证→密钥交换→会话复用。先给全貌再展开,展示体系化思维。

五个经典回答示范

回答一 · 校招应届版

HTTPS 用的是对称加非对称的混合加密。握手时客户端先发随机数和加密套件,服务器返回证书和它的随机数;客户端验证证书链后生成预主密钥,用服务器公钥加密发过去;双方用三个随机数算出会话密钥,之后通信用它对称加密。这样既解决了密钥交换,又保证了性能。

回答二 · 1-3年经验版

我会按 TLS1.2/1.3 分开讲。1.3 把握手压缩到 1-RTT,密钥交换固定为 ECDHE 实现前向保密,去掉了不安全的套件;还支持 0-RTT 会话恢复。实践上我配置过 Nginx 的 TLS:只开 1.2/1.3、启用 OCSP 装订和会话复用,握手耗时明显下降。理解协议版本差异比背流程更能体现深度。

回答三 · 资深版

这道题我会先给安全模型:要解决窃听、篡改、冒充三类风险,所以需要加密、完整性校验和证书体系。握手的核心是密钥交换与身份认证:ECDHE 保证前向保密,证书链锚定到系统根证书完成认证。然后落到工程:会话复用、TLS1.3、密钥计算成本、连接复用对首屏的影响,安全与性能的平衡点。

回答四 · 追问应对

追问『中间人能不能篡改证书』:证书有 CA 签名,篡改后签名校验不过;但如果客户端不校验或信任了非法根证书就成立,这也是抓包工具的原理。追问『为什么不全用非对称』:非对称计算比对称慢两三个数量级,只用于握手交换密钥。追问『TLS1.3 为什么删掉 RSA 密钥交换』:没有前向保密。

回答五 · 反面示范

『HTTPS 就是 http 加上 ssl 层,用 https 就安全了,具体握手我没背过,反正比 http 慢一点。』——点评:前端常考题里答不出流程是硬伤;『反正慢』也是过时认知——1.3 和会话复用后开销可控。至少要能讲清混合加密的原因和证书验证这关。

怎么练这道题
  1. 打开 模拟练习,选择「前端开发」方向,限时 3 分钟作答本题。
  2. 对照上方答题框架,逐点检查:哪些要素没覆盖、哪里表达啰嗦。
  3. 用自己项目的真实经历替换框架中的占位内容,重讲一遍并录音回听。

这类题在真实面试中常被追问细节,
建议进入限时模式练一遍。

开始限时演练