HTTPS传输过程

124 阅读2分钟

1. HTTPS原理

先用一张图进行描述:

1.1 证书验证过程

  • 客户端请求HTTPS地址,会默认请求服务器的443端口;
  • 客户端返回CA证书,证书中包含的具体内容有:
  1. 证书的发布机构信息;
  2. 过期时间;
  3. 公钥;
  4. 证书所有者信息;
  5. 签名
  6. ...
  • 客户端再接收到证书时,会对证书进行验证,说明如下:
  • 首先浏览器读取证书中的所有者信息、过期时间进行验证;
  1. 浏览器会查找操作系统中的内置的证书发布机构的CA与证书中的颁发机构进行一一对 比,验证证书颁发机构的合法性;
  2. 以上没有问题的话,继续取出操作系统颁发机构CA的公钥,采用同样的hash算法对服 务器发送的证书进行hash签名,然后与证书中的hash签名进行对比,验证证书的完整 性以及合法性;
  3. 如果以上都没有问题,就可以通过证书的合法性,进行后续的HTTPS的正常通信;
  4. 如果以上有问题的话,浏览器会弹出证书不合法的提示信息;

1.2 非对称加密

证书验证过程通过,进入非对称加密过程。说明如下:

  • 客户端在CA中取出公钥,并生成一个随机字符码key,并使用公钥对随机字符码Key进行加密;
  • 把加密后的Key发送给服务端,服务端使用私钥进行解密,获取随机字符码Key;

1.3 对称加密

通过1.2的过程,双方都拿到了随机字符码,之后双方就可以使用随机字符码Key对内容进行对称加密进行通信。