之前在面试过程中问及Https与Http有什么不同,大体都是说Https比Http多了SSL校验,公钥加密,私钥解密啥的,直到后来有一次当场被面试官指出说的完全不对,才发现自己对这一个小知识点了解的如此的浅陋,所以回来查了一些资料,终于理清了Https的校验过程,其他别的这里就不罗嗦了,直接理理Https加解密详细过程。
先看图。
Https.png
- 客户端向服务器端请求连接,服务器随后将自己的SSL证书(包含公钥)返回给客户端
- 客户端对证书的真伪进行校验(客户端从本地中取出证书颁发者的公钥,对服务器发来的证书内的签名进行解密,然后浏览器使用相同hash算法计算出服务器发来的证书hash值,将这个hash值与证书中的签名做对比)
- 客户端在第2步确认服务器端后,自身随机一个对称密钥
- 使用服务器公钥对对称密钥进行加密
- 将使用服务器公钥加密过后的对称密钥发送给服务器,服务器使用自身私钥解密出客户端的对称密钥
- 之后的通信一律使用对称密钥进行加密
觉得不错的点个喜欢,鼓励一下我嘛。😄。。。
网友评论