HTTPS通信图解
图片转载自霖呆呆
##通信步骤
- 服务器向CA机构提交自己的信息和公匙
- CA机构使用自己的根私匙对 服务器提交的信息 进行加密得到数字签名(数字签名包含了加密算法和 服务器信息使用了加密算法后得到的hash字符串 )
- CA机构把由 数字签名和服务器提交信息 组成的数字证书颁发给服务器
- 客户端第一次发起请求,服务器将数字证书返回给客户端
- 客户端使用 事先植入浏览器的CA机构根公匙 解密数字证书,得到一个hash字符串和加密算法,使用加密算法对明文信息加密得到hash字符串2,比较hash和hash2是否相等(不相等说明应答包信息被人修改过)
- 客户端再一次校验数字证书上的服务器信息是否和当前通信的服务器一致(数字证书也可能是假的,如果不一致说明证书被掉包了)
- 客户端生成对称加密私匙,使用 从数字证书中得到的服务器公匙 进行加密后发送给服务器
- 服务器使用私钥对信息进行解密得到对称加密私匙,如此一来服务器和客户端就成功一致得到对称加密私匙,之后通信使用 对称加密私匙 对通信数据进行加密即可保证安全