
引言前面三篇我们讲的都是 HTTP——纯明文传输的协议。明文意味着什么你在咖啡厅连上公共 WiFi登录网站输入密码——旁边任何一个稍微懂点技术的人用抓包工具就能看到你的密码。HTTPS 就是来解决这个问题的。它在 HTTP 和 TCP 之间加了一层TLSTransport Layer Security加密层让传输的数据变成密文即使被截获也无法解读。本文将用大量图解讲透 HTTPS 的核心加密原理对称加密、非对称加密、混合加密、中间人攻击、证书和 CA 体系。第一部分HTTP 的三大安全风险HTTPS 通过三种机制解决这三个问题问题解决方案技术窃听加密对称加密 非对称加密篡改完整性校验消息认证码MAC冒充身份认证数字证书 CA第二部分对称加密一、什么是对称加密加密和解密使用同一把密钥。就像你和朋友约定一个暗号写信时用暗号加密读信时用同样的暗号解密。常见对称加密算法算法密钥长度速度安全性DES56 位快❌ 已被破解3DES168 位慢⚠️ 逐渐淘汰AES128/192/256 位快✅ 当前主流ChaCha20256 位快✅ 移动端常用二、对称加密的核心问题对称加密无法解决密钥传输问题。这就是为什么需要非对称加密。第三部分非对称加密一、什么是非对称加密两把不同的密钥公钥加密私钥解密。公钥可以公开给所有人私钥只有服务器自己知道。常见非对称加密算法算法密钥长度用途RSA2048/4096 位密钥交换、数字签名ECDHE256 位密钥交换更快、支持前向安全ECDSA256 位数字签名二、非对称加密的优缺点优点缺点✅ 解决密钥传输问题公钥可公开❌非常慢比对称加密慢 100~1000 倍✅ 支持数字签名❌ 加密数据长度有限第四部分混合加密一、为什么需要混合加密对称加密快但无法安全传递密钥非对称加密安全但太慢。HTTPS 的做法是结合两者第五部分中间人攻击与证书一、中间人攻击MITM混合加密看起来很完美但有一个致命漏洞——公钥传输过程可能被篡改。核心问题浏览器怎么知道收到的公钥真的是服务器的而不是中间人伪造的二、数字证书答案让一个权威第三方CA来证明这个公钥确实属于这个网站。三、证书验证流程浏览器和操作系统内置了受信任的根 CA 列表。打开 Chrome → 设置 → 隐私与安全 → 安全 → 管理证书就能看到。四、证书链第六部分HTTPS 完整通信流程第七部分面试题1. QHTTPS 和 HTTP 的区别AHTTP 明文传输HTTPS HTTP TLS 加密。HTTPS 默认端口 443HTTP 默认 80。HTTPS 需要 CA 证书。2. QHTTPS 用了什么加密方式A混合加密。非对称加密RSA/ECDHE交换对称密钥对称加密AES传输数据。3. Q为什么不用非对称加密传输所有数据A非对称加密太慢了比对称加密慢 100~1000 倍。所以只用它来交换密钥。4. Q中间人攻击是什么HTTPS 怎么防止A中间人拦截通信把自己的假公钥发给客户端。HTTPS 通过 CA 签发的数字证书来防止——证书由权威 CA 签名浏览器内置 CA 公钥来验证中间人无法伪造。5. Q抓包工具Fiddler/Charles为什么能解密 HTTPSA它们在本地安装了自己的 CA 证书充当合法的中间人。浏览器信任了这个假 CA → 工具用假证书和浏览器通信 → 工具再和真实服务器通信 → 中间可以看到明文。这就是为什么不要在设备上安装不信任的证书。总结一、HTTPS 安全机制安全目标技术原理防窃听加密非对称加密交换密钥 对称加密传输数据防篡改消息认证码MAC接收方验证数据是否被修改防冒充数字证书 CA权威第三方证明网站身份二、一句话记忆HTTPS 用非对称加密安全地交换对称密钥然后用对称加密高效地传输数据。数字证书由 CA 签发证明公钥属于这个网站。浏览器用内置的 CA 公钥验证证书防止中间人攻击。