超详细图解:HTTPS 中的 SSL/TLS 完整握手过程(面试必背)
超详细图解HTTPS 中的 SSL/TLS 完整握手过程面试必背摘要一、HTTPS 与 SSL/TLS 的关系二、SSL/TLS 握手核心作用三、SSL/TLS 握手标准流程TLS 1.2 完整版3.1 握手流程图3.2 逐步骤详细解释7步必背1. Client Hello客户端问候2. Server Hello服务器问候3. Certificate发送服务器证书4. Server Hello Done服务器问候结束5. Client Key Exchange客户端密钥交换6. 双方生成会话密钥最关键一步7. 加密握手完成开始通信四、SSL/TLS 握手最核心原理一句话总结五、SSL/TLS 握手高频面试问题1. 为什么要先用非对称加密再用对称加密2. 数字证书有什么用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 握手流程图1. Client Hello2. Server Hello3. 证书 Certificate4. Server Hello Done5. 密钥交换 Client Key Exchange6. 加密握手完成7. 加密握手完成客户端服务器开始加密通信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点点关注收藏不迷路