什么是HTTPS,HTTPS验证的过程是怎么样的

HTTPS是计算机进行安全通信的传输协议,实际利用HTTP进行通信,但是用SSL/TLS来加密数据包。HTTPS使用证书+数字签名的方法来解决安全问题。步骤如下:

  1. 服务端申请SSL证书。申请SSL证书过程是: 首先, 服务端生成自己的公钥和私钥, 服务器将自己的 地址+公钥 发送给证书颁发机构(以下简称CA). 每个CA都有自己机构的公钥和私钥. CA根据 服务器的地址+CA公钥+服务器公钥, 使用一种公开的算法, 计算出证书签名(算法公开, 服务器公钥公开, CA公钥也公开, 因此每一个拿到签名的终端都可以验证是否被篡改). 此时, CA使用自己的私钥, 对服务器的公钥刚生成的签名进行加密, 连同服务器地址+证书机构信息, 一起发送给服务端, 即SSL证书(也就是说, SSL证书包括4部分信息: 服务器地址, 证书颁发机构, 经过CA私钥加密的服务器公钥, 经过CA私钥加密的签名).
  2. 客户端与服务端建立连接时,服务端会向客户端发送SSL证书
  3. 客户端查找内置的受信任的证书颁发机构CA,与服务器发来的证书的颁发者CA比对,校验证书是否为合法机构颁发
  4. 如果找到,客户端取出颁发者CA的公钥,对服务器发来的证书进行解密, 此时客户端就具有了5个信息: 服务器地址, CA公钥, 服务器公钥, 证书签名, 签名生成算法.
  5. 客户端用相同的hash算法,计算出一个值,将这个值与数字签名做比对
  6. 比对结果一致,证明服务器证书合法, 内容没有被篡改
  7. 浏览器生产随机的对称密钥,用服务端给的公钥进行加密,发送给服务端
  8. 服务端用自己的私钥解密,得到同样的对称密钥
  9. 双方都知道对称密钥,用它来对后续的通信内容加密。

你可能感兴趣的:(什么是HTTPS,HTTPS验证的过程是怎么样的)