参考自文章。
HTTPS实现原理
HTTPS分为证书验证和数据传输阶段:
证书验证阶段(非对称加密,公钥私钥)
1.浏览器发起 HTTPS 请求
2.服务端返回 HTTPS 证书(包含公钥)
3.客户端验证证书是否合法,如果不合法则提示告警
数据传输阶段(对称加密,随机数)
1.当证书验证合法(将收到证书的根证书和本地保存的根证书比对)后,在本地生成随机数
2.通过公钥加密随机数,并把加密后的随机数传输到服务端
3.服务端通过私钥对随机数进行解密
4.服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输
非对称加密效率低,且只能单向加解密,所以数据传输采用对称加密