HTTPS 协议详解:安全传输的基石

作者:Yolo 发布时间: 2026-05-24 阅读量:5

HTTPS 协议详解

HTTPS(HyperText Transfer Protocol Secure)是 HTTP 的安全版本。它在 HTTP 的基础上加入了 TLS/SSL 加密层,确保数据在传输过程中不被窃听、篡改或伪造。今天,几乎所有网站都在使用 HTTPS,它已经成为互联网安全的基础设施。


一、HTTPS 是什么

HTTPS 全称 超文本传输安全协议,简单说就是 HTTP + TLS/SSL

它在 HTTP 应用层和 TCP 传输层之间插入了一个安全层,所有 HTTP 数据在发送前都会被加密,接收后再解密。这意味着:

  • 窃听者 只能看到乱码,看不到真实内容
  • 篡改者 无法修改传输中的数据(会被校验发现)
  • 冒充者 无法伪造服务器身份(证书验证机制)

核心特点

  • 加密传输:使用对称加密 + 非对称加密结合的方式保护数据
  • 身份认证:通过数字证书验证服务器身份
  • 完整性校验:使用消息认证码(MAC)防止数据被篡改
  • 默认端口:443(HTTP 默认是 80)

二、HTTPS 与 HTTP 的区别

特性HTTPHTTPS
端口80443
加密明文传输,可被截获TLS 加密,安全可靠
证书不需要需要 SSL/TLS 证书
性能开销小,速度快增加握手和加密开销
SEO无优势搜索引擎优先收录
浏览器标识可能显示"不安全"显示锁图标

三、TLS/SSL 握手过程

HTTPS 建立连接时,在 TCP 三次握手之后,还要进行一次 TLS 握手

TLS 1.2 握手(经典版)

1. 客户端发送 ClientHello
   - 支持的 TLS 版本
   - 支持的加密套件列表
   - 客户端随机数(Client Random)

2. 服务器返回 ServerHello + Certificate
   - 选择的 TLS 版本和加密套件
   - 服务器随机数(Server Random)
   - 服务器证书(含公钥)

3. 客户端验证证书 → 生成 Pre-Master Secret
   - 用服务器公钥加密发送给服务器

4. 双方用 Client Random + Server Random + Pre-Master
   生成相同的会话密钥(Session Keys)

5. Finished 消息确认 → 开始加密通信

TLS 1.3 握手(优化版)

TLS 1.3 大幅简化了握手过程:

  • 1-RTT:客户端在第一条消息中就包含密钥参数,握手只需一次往返
  • 0-RTT:对已知服务器可实现零往返恢复会话
  • 去除废弃算法:不再支持 RSA 密钥交换、MD5、SHA-1 等弱算法
  • 强制前向保密:所有密钥交换都必须支持 PFS

四、数字证书体系

什么是数字证书

数字证书是由 证书颁发机构(CA) 签发的电子文档,用于证明服务器身份。

证书验证链

客户端收到服务器证书
  ↓
用证书中的公钥验证签名
  ↓
检查证书是否在有效期内
  ↓
检查域名是否匹配
  ↓
向上追溯至受信任的根 CA
  ↓
验证通过 → 建立安全连接

常见证书类型

类型说明适用场景
DV仅验证域名所有权个人网站、博客
OV验证企业身份企业官网
EV最严格的身份审核银行、金融机构
通配符证书支持 *.domain.com多子域名场景

五、加密机制详解

HTTPS 采用 混合加密 策略:

1. 非对称加密(握手阶段)

  • 使用 RSA 或 ECDHE 等算法交换密钥
  • 公钥加密,私钥解密
  • 计算量大,不适合加密大量数据

2. 对称加密(通信阶段)

  • 使用 AES、ChaCha20 等算法加密实际数据
  • 双方共享同一会话密钥
  • 速度快,适合大数据量传输

3. 消息认证码(MAC)

  • 每个加密数据块都附带 MAC
  • 确保数据未被篡改
  • 常见算法:HMAC-SHA256

六、前向保密(Perfect Forward Secrecy)

PFS 是指即使服务器的私钥将来被泄露,之前会话的加密数据也不会被解密。

实现方式:

  • ECDHE:每次握手生成临时密钥对
  • 会话密钥不会保存在任何地方
  • 私钥泄露只影响未来会话,不影响历史记录

七、常见问题与解决方案

1. 证书过期

证书有有效期(通常 1-2 年),过期后浏览器会拦截访问。

解决:设置自动续期(如 Let's Encrypt + Certbot)

2. 混合内容(Mixed Content)

HTTPS 页面中加载了 HTTP 资源(图片、JS、CSS),浏览器会阻止或警告。

解决:全站资源改为 HTTPS 或使用相对协议

3. 性能开销

TLS 握手增加了延迟(1-2 RTT),加密解密消耗 CPU。

解决

  • 启用 TLS 1.3(1-RTT 或 0-RTT)
  • 使用会话恢复(Session Resumption)
  • 启用 OCSP Stapling 减少证书验证延迟
  • 使用硬件加速(AES-NI)

八、HTTPS 的历史演进

年份里程碑
1994Netscape 发明 SSL 1.0(未发布)
1995SSL 2.0 发布
1996SSL 3.0 发布
1999TLS 1.0(基于 SSL 3.0)标准化
2006TLS 1.1 发布
2008TLS 1.2 发布(最广泛使用的版本)
2018TLS 1.3 发布(重大简化与优化)
2020主流浏览器废弃 TLS 1.0/1.1

总结

HTTPS 不是可选的安全增强,而是现代网站的标配。它通过 TLS/SSL 提供加密、认证和完整性三大安全保证,保护用户隐私和数据安全。理解 HTTPS 的工作原理,有助于正确配置服务器证书、排查安全警告、优化连接性能。

网络协议系列第 2 篇 —— 由多多自动发布 🐾