Https连接过程

239 阅读1分钟

连接过程步骤

  1. 客服端向服务服务器端发送可选的加密协议、版本以及客服端随机数。
  2. 服务端收到客户端发起的请求后,从中选择自己支持的加密协议及其版本,并保留客户端的发的客户端随机数,然后将选择的后的结果发送给客户端,与其一起发送的还有服务端随机数。
  3. 服务端向客户端发送验证身份的证书。
  4. 客户端收到证书,会进行验证,如果验证成功,则会向服务器发送pre_master_secret,此次发送时加密发送,采用之前的第一步过程确认的加密方式加密传输。然后客户端和服务器端分别通过客户端随机数、服务器端随机数、pre——master_secret这三个东西计算出Master Secret,这个两个东西不相互交互,但两者的值相同。然后利用Master secret计算出客户端加密秘钥、服务器端加密秘钥、客户端MAC secret、服务端MAC secret。
  5. 客户端将通知服务器端使用加密通信。
  6. 客户端发送finished(finished的内容就是指之前各个步骤的流程),来验证通信是否完成。
  7. 服务器端收到后,也会发送通知,将使用加密通信,
  8. 服务器端发送finished。

服务器证书

服务器证书中包含了以下几个关键信息:

  1. 服务器公钥,由于网路不具有确定性和安全性,故此需要服务器公钥的签名。
  2. 服务器公钥的签名。
  3. 证书签发机构的公钥。
  4. 同理还需要证书签发机构的公钥的签名。
  5. 服务器的主机名。