概述:HTTPS加密过程:非对称加密+对称加密+数字证书
1.客户端发送https请求,服务端返回数字证书。
数字证书包含以下内容:
证书颁发机构
证书有效期
证书持有者、域名
公钥
证书签名
2.客户端验证数字证书。
(1)验证证书是否在自己根证书中。
(2)验证证书有效期。
(3)验证证书签名。
从根证书中获取服务端返回的数字证书对应的公钥,对服务端返回的数字证书中证书签名进行解签,得到一个hash值。
利用根证书中获取服务端返回的数字证书对应的hash算法,
sign = encrypt(hash(“证书机构” + “证书有效期” + “证书所有者” + “公钥”))
跟第一步中得到hash值进行对比,如果相同则验证通过。
3.验证未通过,进行提示。验证通过则生成随机key用来接下来通信的密钥,通过服务端返回的数字证书中公钥进行加密,发送给服务端。
4.服务端接收到随机key,则利用私钥进行解密,得到随机key,接下来利用key进行加密项客户端响应。
5.客户端利用随机key进行加解密。