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. 为什么不直接用非对称加密传所有数据?→ 速度太慢,对称加密效率更高。

相关推荐
Linux-lucky4 小时前
21-Linux学习之旅之HTTPS和安全加固
linux·运维·学习·ubuntu·https
游戏开发爱好者86 小时前
带签名时间戳接口的重放与压力测试实战,用动态值在发送前现算签名
网络协议·计算机网络·网络安全·ios·adb·https·压力测试
TechWayfarer6 小时前
批量查IP归属地,在线API、脚本、离线库怎么选?三种方案实测对比
网络·python·网络协议·tcp/ip
小小龙学IT7 小时前
Boost.Beast 深度实战:基于 Asio 的开源 C++ HTTP/WebSocket 协议库
c++·websocket·http
ryan_99610 小时前
MCP Transport 完整指南:stdio 与 Streamable HTTP 到底怎样传消息
网络·网络协议·http
LayZhangStrive13 小时前
后端通识 - 远程服务调用RPC
网络·网络协议·rpc·sentinel·openfeign·远程服务调用
华清远见成都中心14 小时前
FreeRTOS事件组(Event Group)的工作机制分析
服务器·网络·网络协议
tiantianuser15 小时前
NVME-oF IP 设计15 : 适于高速网络存储系统的IP设计1
网络协议·rdma·高速传输·cmac·roce v2
teak_on_my_way17 小时前
外网通过 Nginx 访问 Doris Stream Load:一次 HTTP 307 疑难排查与完整代理方案
运维·数据库·nginx·http
艺术留白18 小时前
MokaTest使用篇-HTTP接口
网络·网络协议·http