Http加密流程

我们先来看看HTTPS的加解密流程。

HTTPS加解密流程

  1. 用户在浏览器发起HTTPS请求(如 https://www.mogu.com/),默认使用服务端的443端口进行连接;

  2. HTTPS需要使用一套CA数字证书,证书内会附带一个公钥Pub,而与之对应的私钥Private保留在服务端不公开;

  3. 服务端收到请求,返回配置好的包含公钥Pub的证书给客户端;

  4. 客户端收到证书,校验合法性,主要包括是否在有效期内、证书的域名与请求的域名是否匹配,上一级证书是否有效(递归判断,直到判断到系统内置或浏览器配置好的根证书),如果不通过,则显示HTTPS警告信息,如果通过则继续;

  5. 客户端生成一个用于对称加密的随机Key,并用证书内的公钥Pub进行加密,发送给服务端;

  6. 服务端收到随机Key的密文,使用与公钥Pub配对的私钥Private进行解密,得到客户端真正想发送的随机Key

  7. 服务端使用客户端发送过来的随机Key对要传输的HTTP数据进行对称加密,将密文返回客户端;

  8. 客户端使用随机Key对称解密密文,得到HTTP数据明文;

  9. 后续HTTPS请求使用之前交换好的随机Key进行对称加解密。

猜你喜欢

转载自blog.csdn.net/u013984781/article/details/107630797