HTTPS 加密传输原理

在面试后端、Java 开发、网络安全时,HTTPS 加密过程 几乎是必考题。很多同学能说出 "加密",但一深入到对称加密、非对称加密、数字证书、公钥私钥就开始混乱。

这篇文章用最通俗、最直白、最适合面试的方式,带你彻底搞懂 HTTPS 到底是怎么加密的。


一、HTTPS 是什么?

HTTPS = HTTP + SSL/TLS

  • HTTP:明文传输,不安全,数据容易被窃听、篡改、伪造
  • HTTPS:在 HTTP 下层加入加密层,保证传输安全

一句话总结:HTTPS 不是新协议,而是给 HTTP 穿了一件 "加密防弹衣"。


二、先搞懂两种加密:对称 & 非对称

HTTPS 之所以安全,是因为它同时使用了两种加密,各司其职。

1. 对称加密

  • 加密、解密用同一个密钥
  • 优点:速度极快,适合大量数据传输
  • 缺点:密钥在网络上传输不安全,一旦被截获就全泄露

2. 非对称加密(公钥 & 私钥)

  • 一对钥匙:公钥(公开)、私钥(自己留)
  • 规则:
    • 公钥加密 → 只能私钥解密
    • 私钥加密 → 只能公钥解密(数字签名)
  • 优点:极其安全,私钥永不传输
  • 缺点:速度慢,不适合大量数据

三、HTTPS 最核心思想:混合加密

面试必背这句话:HTTPS 使用非对称加密,安全交换对称密钥; 之后全程使用对称密钥加密传输数据。

简单理解:

  • 非对称加密:只负责 "安全递暗号"
  • 对称加密:负责 "真正聊天加密"

四、HTTPS 完整加密流程(面试直接背)

1. 客户端发起 HTTPS 请求

浏览器访问 https://xxx.com,告诉服务器:我支持哪些加密套件。

2. 服务器返回数字证书

服务器下发数字证书,里面包含:

  • 服务器的公钥
  • 域名、有效期
  • CA 机构的数字签名(防伪造)

3. 客户端验证证书

浏览器使用系统内置的 CA 公钥 验证证书签名:

  • 验证通过 → 公钥可信
  • 验证失败 → 提示 "不安全"

4. 客户端生成随机对称密钥

浏览器生成一个临时对称密钥,这是后续真正加密数据的密钥。

5. 用服务器公钥加密对称密钥

客户端使用服务器公钥加密对称密钥,发送给服务器。

6. 服务器用私钥解密

服务器使用自己的私钥解密,得到对称密钥。

7. 双方使用对称密钥通信

从这一步开始:

  • 所有网页、图片、接口数据
  • 全部使用对称密钥加密传输
  • 速度快、安全性高

五、数字证书到底有什么用?

如果没有证书:黑客可以伪造公钥发给你,你用假公钥加密,黑客直接用私钥解密,这叫中间人攻击

数字证书 = 网站公钥的身份证

  • 由权威机构 CA 颁发
  • 证明这个公钥真的属于这个网站
  • 浏览器验证 CA 签名,确保不被掉包

六、面试终极总结(背会这一段)

HTTPS 采用对称加密与非对称加密结合 的方式:服务器通过下发数字证书 证明身份,客户端验证证书后获取合法公钥 ;使用公钥加密对称密钥 完成安全交换,后续通信全程使用对称密钥加密数据;既保证了密钥传输的安全性,又保证了数据传输的效率,实现防窃听、防篡改、防伪造。


七、高频面试题

  1. HTTPS 用的是对称加密还是非对称加密?→ 混合加密。非对称交换密钥,对称加密数据。

  2. 公钥和私钥在 HTTPS 里的作用?→ 公钥加密对称密钥,私钥解密对称密钥。

  3. 数字证书的作用?→ 证明公钥真实有效,防止中间人攻击。

  4. 为什么不直接用非对称加密传所有数据?→ 速度太慢,对称加密效率更高。

相关推荐
爱丽_2 小时前
TCP vs UDP 怎么选(偏实战:别背概念,用场景做决策)
网络协议·tcp/ip·udp
虾..2 小时前
Linux HTTP服务器
linux·服务器·http
taxunjishu3 小时前
TCP/IP转EtherNet/IP 协议转换 罗克韦尔PLC与视觉设备交互
网络·网络协议·tcp/ip
yy55273 小时前
Nginx 安全防护与 HTTPS 部署实战
nginx·安全·https
cheems95275 小时前
[网络原理] HTTPS 加密演进与中间人攻击
网络·网络协议·http·https
qq_570398575 小时前
websocket
网络·websocket·网络协议
葡萄城技术团队6 小时前
Hurley:用 Rust 打造的高性能 HTTP 客户端 + 压测工具
开发语言·http·rust
爱丽_6 小时前
HTTPS 与 TLS 握手
网络协议·http·https
沐浴露z6 小时前
详解 HTTPS之 TLS 证书信任链
网络协议·https·信任链