核心:HTTPS = HTTP + TLS/SSL,通过加密、身份验证、数据完整性保护,确保网络通信安全。

一、什么是 HTTPS?

HTTPS(HyperText Transfer Protocol Secure)是在 HTTP 基础上加入 TLS/SSL 加密层的安全协议。它解决了三个核心问题:

  • 加密性:传输数据被加密,中间人无法窃听
  • 身份验证:通过数字证书确认服务器身份
  • 完整性:数据传输过程中无法被篡改

二、TLS 握手过程

HTTPS 连接建立的第一步是 TLS 握手,这个过程用于协商加密算法、交换密钥、验证身份。

TLS 握手时序图
sequenceDiagram participant C as 客户端浏览器 participant S as HTTPS服务器 Note over C,S: 第一阶段:协商加密算法 C->>S: ① Client Hello Note right of C: 支持的TLS版本
加密算法列表
随机数A S->>C: ② Server Hello + 证书 Note left of S: 选定的加密算法
数字证书
服务器公钥
随机数B Note over C,S: 第二阶段:密钥交换 Note over C: ③ 验证证书有效性 Note over C: 生成预主密钥 C->>S: ④ 加密的预主密钥 Note right of C: 用服务器公钥加密 Note over S: ⑤ 用私钥解密 Note over C,S: 双方计算会话密钥
=f(随机数A, 随机数B, 预主密钥) Note over C,S: 第三阶段:开始加密通信 C->>S: ⑥ 切换加密通知 S->>C: ⑦ 握手完成 Note over C,S: 后续通信全部加密 C->>S: 加密的HTTP请求 S->>C: 加密的HTTP响应

注意:握手阶段的前两步(Client Hello、Server Hello)是明文传输的,但这不影响安全性,因为真正的密钥在后续步骤中通过非对称加密传输。

三、加密方式详解

3.1 非对称加密(握手阶段)

非对称加密使用一对密钥:公钥用于加密,私钥用于解密。

1
服务器生成密钥对
RSA 2048位
服务器生成一对密钥:公钥公开(在证书中),私钥保密(仅服务器持有)
2
客户端用公钥加密
公钥加密
客户端生成随机的预主密钥,用服务器公钥加密后发送
3
服务器用私钥解密
私钥解密
服务器用私钥解密,获得预主密钥。中间人即使截获也无法解密

3.2 对称加密(通信阶段)

对称加密使用同一个密钥进行加密和解密,速度快,适合大量数据传输。

算法 密钥长度 特点 应用场景
AES-128 128位 速度快,安全性高 一般网站
AES-256 256位 最高安全级别 银行、政府
ChaCha20 256位 移动端优化 移动应用

四、数字证书与信任链

证书信任链结构
graph TD A[根证书 Root CA] B[中间证书 Intermediate CA] C[网站证书 End-entity Certificate] A -->|签发| B B -->|签发| C A1[预装在操作系统/浏览器中
绝对可信] B1[隔离保护根证书
DigiCert SHA2] C1[绑定域名
www.example.com] A -.-> A1 B -.-> B1 C -.-> C1 style A fill:#409EFF,stroke:#409EFF,color:#FFFFFF style B fill:#67C23A,stroke:#67C23A,color:#FFFFFF style C fill:#E6A23C,stroke:#E6A23C,color:#FFFFFF style A1 fill:#ECF5FF,stroke:#409EFF,color:#409EFF style B1 fill:#F0F9FF,stroke:#67C23A,color:#67C23A style C1 fill:#FDF6EC,stroke:#E6A23C,color:#E6A23C

证书验证流程

  1. 浏览器收到网站证书(末端证书)
  2. 检查证书是否过期、域名是否匹配
  3. 向上查找中间证书,验证数字签名
  4. 继续向上直到找到根证书
  5. 验证根证书是否在系统预装列表中
  6. 整条链路可信 → 显示绿色锁图标

五、实战案例:登录加密过程

用户登录数据加密流程
graph LR A[用户输入密码] --> B[组装JSON] B --> C{TLS握手完成?} C -->|是| D[AES-256加密] C -->|否| E[等待握手] E --> D D --> F[HTTPS传输] F --> G[服务器解密] G --> H[验证登录] style A fill:#F2F6FC,stroke:#DCDFE6 style D fill:#F0F9FF,stroke:#67C23A,color:#67C23A style F fill:#ECF5FF,stroke:#409EFF,color:#409EFF style H fill:#F0F9FF,stroke:#67C23A,color:#67C23A

安全保障:即使黑客截获传输数据,看到的也只是加密后的乱码。没有会话密钥,无法解密获取原始密码。

六、总结

阶段 加密方式 目的 速度
握手阶段 非对称加密(RSA/ECDHE) 安全交换密钥
通信阶段 对称加密(AES/ChaCha20) 高效加密数据
身份验证 数字证书 + 证书链 确认服务器身份 -

核心设计思想:用非对称加密的安全性解决密钥交换问题,用对称加密的高效性解决数据传输问题,用证书链解决身份信任问题。三者结合,构成了现代互联网安全的基石。