# https密钥交换过程

By [lyan](https://paragraph.com/@lyan) · 2022-10-18

---

关键点
===

*   使用 **非对称加密** 处理用于加密数据的密钥
    
*   使用 **对称加密** 处理具体的数据
    

图解
==

![https密钥交换过程](https://storage.googleapis.com/papyrus_images/95a10ed72f4c510de67d4297514e66c296ff1530539274eb9c77e663990bf4b4.png)

https密钥交换过程

[https://drive.google.com/file/d/14vRn\_mfvbyN8-JSvktHqMN25kxAl4W\_s/view](https://drive.google.com/file/d/14vRn_mfvbyN8-JSvktHqMN25kxAl4W_s/view)

流程说明
====

1.客户端获取公钥
---------

*   客户端发送请求，服务端返回公钥
    
*   客户端用证书验证公钥，如果合法，继续下一步
    

2.客户端生成用于加密数据的密钥
----------------

*   客户端生成随机密钥
    
*   然后用服务器返回的公钥对这个密钥加密，得到加密后的密钥
    

3.服务端验证密钥
---------

*   客户端将加密后的密钥发给服务端
    
*   服务端使用私钥解密得到密钥
    

4.使用密钥加密数据进行传输，使用密钥解密数据得到明文
---------------------------

*   服务端使用获得的密钥加密数据，发送给客户端
    
*   客户端使用密钥解密得到明文。

---

*Originally published on [lyan](https://paragraph.com/@lyan/https)*
