https通信过程
转自:https://zhuanlan.zhihu.com/p/692295428
HTTPS 的通信过程可以简单分为以下几个步骤:
- 客户端发起连接请求:客户端向服务器发送 HTTPS 请求,请求连接到服务器的 HTTPS 端口(默认是443端口)。
- 服务器返回证书:服务器在接收到客户端的连接请求后,会将自己的数字证书发送给客户端。该证书包含了服务器的公钥、服务器的域名信息以及证书的颁发机构等。
- 客户端验证证书:客户端收到服务器发送的证书后,会验证证书的合法性,包括检查证书的颁发机构是否受信任、证书是否过期、证书中的域名是否与服务器的域名匹配等。如果验证通过,则继续连接。
- 客户端生成随机数和密钥:客户端生成一个随机数,用于生成对称加密的会话密钥。然后使用服务器的公钥加密这个随机数,发送给服务器。
- 服务器使用私钥解密:服务器收到客户端发送的加密随机数后,使用自己的私钥解密,得到对称加密的会话密钥。
- 客户端和服务器使用会话密钥加密通信:客户端和服务器双方都拥有了相同的会话密钥,接下来的通信都将使用这个密钥进行对称加密,保证通信的安全性。
- 数据传输:客户端和服务器使用会话密钥加密数据进行传输,保证数据的机密性。
- 连接结束:通信结束后,客户端和服务器都可以选择关闭连接。