超详细图解:HTTPS 中的 SSL/TLS 完整握手过程(面试必背)
-
- 摘要
- [一、HTTPS 与 SSL/TLS 的关系](#一、HTTPS 与 SSL/TLS 的关系)
- [二、SSL/TLS 握手:核心作用](#二、SSL/TLS 握手:核心作用)
- [三、SSL/TLS 握手:标准流程(TLS 1.2 完整版)](#三、SSL/TLS 握手:标准流程(TLS 1.2 完整版))
-
- [3.1 握手流程图](#3.1 握手流程图)
- [3.2 逐步骤详细解释(7步必背)](#3.2 逐步骤详细解释(7步必背))
- [1. Client Hello(客户端问候)](#1. Client Hello(客户端问候))
- [2. Server Hello(服务器问候)](#2. Server Hello(服务器问候))
- [3. Certificate(发送服务器证书)](#3. Certificate(发送服务器证书))
- [4. Server Hello Done(服务器问候结束)](#4. Server Hello Done(服务器问候结束))
- [5. Client Key Exchange(客户端密钥交换)](#5. Client Key Exchange(客户端密钥交换))
- [6. 双方生成会话密钥(最关键一步)](#6. 双方生成会话密钥(最关键一步))
- [7. 加密握手完成,开始通信](#7. 加密握手完成,开始通信)
- [四、SSL/TLS 握手:最核心原理(一句话总结)](#四、SSL/TLS 握手:最核心原理(一句话总结))
- [五、SSL/TLS 握手:高频面试问题](#五、SSL/TLS 握手:高频面试问题)
-
- [1. 为什么要先用非对称加密,再用对称加密?](#1. 为什么要先用非对称加密,再用对称加密?)
- [2. 数字证书有什么用?](#2. 数字证书有什么用?)
- [3. 会话密钥有什么特点?](#3. 会话密钥有什么特点?)
- 六、总结
|-----------------------------|
| 🌺The Begin🌺点点关注,收藏不迷路🌺 |
摘要
SSL/TLS 握手是 HTTPS 最核心的原理 ,它决定了浏览器与服务器如何安全建立加密连接 。整个握手过程的目标只有三个:协商加密算法、验证服务器身份、安全生成会话密钥。
本文用标准流程图 + 逐步骤通俗解释,把最复杂的 TLS 1.2 握手过程讲得清清楚楚,适用于考试、面试、工作理解。
一、HTTPS 与 SSL/TLS 的关系
先明确最基础的概念:
- HTTP:明文传输,不安全
- HTTPS = HTTP + SSL/TLS:加密传输,安全
- SSL:旧版协议(已弃用)
- TLS:新版安全协议(现在使用的都是 TLS)
二、SSL/TLS 握手:核心作用
- 客户端验证服务器身份(防止钓鱼网站)
- 双方协商加密套件(用什么算法加密)
- 交换并生成会话密钥(后续加密通信使用)
- 建立加密通道(之后所有数据都是密文)
三、SSL/TLS 握手:标准流程(TLS 1.2 完整版)
3.1 握手流程图
- Client Hello
- Server Hello
- 证书 Certificate
- Server Hello Done
- 密钥交换 Client Key Exchange
- 加密握手完成
- 加密握手完成
客户端
服务器
开始加密通信
3.2 逐步骤详细解释(7步必背)
1. Client Hello(客户端问候)
- 客户端发送:
- 支持的 TLS 版本
- 支持的 加密套件列表
- 客户端随机数(Client Random)
- 目的:告诉服务器"我支持哪些加密方式"。
2. Server Hello(服务器问候)
- 服务器回复:
- 选定的 TLS 版本
- 选定的 加密套件
- 服务器随机数(Server Random)
- 目的:确定双方共同支持的加密方案。
3. Certificate(发送服务器证书)
- 服务器发送数字证书(包含:公钥、域名、CA签名)
- 客户端验证证书是否合法(是否过期、是否被篡改、是否匹配域名)
- 目的:证明服务器身份,防止伪装
4. Server Hello Done(服务器问候结束)
- 服务器告诉客户端:"我的信息发完了"
5. Client Key Exchange(客户端密钥交换)
- 客户端生成预主密钥(Pre-Master Secret)
- 使用服务器公钥加密后发送给服务器
- 只有服务器的私钥能解密
6. 双方生成会话密钥(最关键一步)
客户端和服务器同时使用三个材料 计算出相同的会话密钥:
- 客户端随机数
- 服务器随机数
- 预主密钥
这个会话密钥 是对称密钥,后续所有数据都用它加密。
7. 加密握手完成,开始通信
- 客户端发送:加密的"握手完成"
- 服务器发送:加密的"握手完成"
- SSL/TLS 握手结束
- 之后传输的所有 HTTP 数据都是加密的
四、SSL/TLS 握手:最核心原理(一句话总结)
- 非对称加密(公钥/私钥)只用于握手阶段
- 对称加密(会话密钥)用于真正的数据传输
- 既保证密钥传输安全 ,又保证数据传输速度快
五、SSL/TLS 握手:高频面试问题
1. 为什么要先用非对称加密,再用对称加密?
- 非对称加密安全但慢
- 对称加密快但不安全
- 结合后:既安全又快
2. 数字证书有什么用?
- 验证服务器身份
- 防止钓鱼网站、中间人攻击
3. 会话密钥有什么特点?
- 临时生成
- 每次连接都不一样
- 对称加密,速度快
六、总结
SSL/TLS 握手是 HTTPS 的安全基础,整个流程可以简化记忆为:
1. 客户端问好 → 2. 服务器问好 → 3. 发证书 → 4. 交换密钥 → 5. 生成会话密钥 → 6. 加密通信
它保证了互联网数据传输防窃听、防篡改、防伪装。
关键点速记
- TLS 握手 = 建立加密通道的过程
- 随机数 + 预主密钥 = 会话密钥
- 公钥加密,私钥解密
- 证书用于验证服务器身份
- 握手成功后才会传输加密网页数据

|---------------------------|
| 🌺The End🌺点点关注,收藏不迷路🌺 |