https 公钥 私钥 画图详解
过程:
(1)浏览器发送自己支持的加密规则给服务器
(2)服务器选择一组加密算法和HASH算法,并将自己的数字证书发给浏览器
(3)浏览器验证数字证书的合法性(验证证书的数字签名),然后生成一个随机数,从服务器的数字证书里面获取服务器的公钥,用这个公钥加密随机数。用约定的hash算法生成握手消息的摘要,并用生成的随机数加密摘要。把握手消息、加密的摘要、加密的随机数发给服务器
(4)服务器用自己的私钥解密随机数,然后用随机数解密摘要,再用hash生成收到的握手消息的摘要与解密的摘要对比,验证正确性。
(5)服务器一样用hash算法生成握手消息的摘要,并用解密的随机数加密摘要。然后把握手消息、加密的摘要发给浏览器
(6)浏览器验证摘要成功后,握手完成。之后通信的数据用之前浏览器生成的随机密码加密后传输。
这就是https 要比 http 安全的原因