Loading... 随着互联网的迅速发展,网络安全问题日益凸显,现在 Chrome 浏览器已经开始阻止非 https 网站的访问了。对于 https 的流程一直不是十分清晰,借着还没有完全复工有时间,大概画了个图总结一下。 想要了解 https 流程,CA 的相关知识,加密方式(对称加密、非对称加密),以及哈希计算(例如:MD5、sha256)等技术必须得掌握,这里先不做介绍,后续有时间再进行归纳总结。 https 是在 http 的基础上加入了 SSL 协议,SSL 依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。 ## HTTPS 的验证流程 ![https][1] 1. 客户端发起 https 请求 2. 服务端返回数字证书文件(X.509 格式) 3. 客户端验证数字证书,并且提取服务端公钥 4. 如果客户端验证数字证书通过,则随机生成一个对称加密的 key,并使用服务器公钥对 key 加密 5. 客户端发送加密后的 key 到服务端 6. 服务端使用私钥解密拿到 key 7. 客户端与服务端使用该 key 对称加解密通讯信息 ## 客户端验证数字证书 1. 浏览器安装后会自带一些权威 CA 公钥 2. 使用相匹配的 CA 公钥对数字证书中的数字签名解密,如果能够解密则得到数字证书的摘要,由此证明数字证书是可信的 3. 根据数字证书中的散列算法对网站信息进行哈希运算,将得到的结果与上一步得到的摘要对比,如果两者一致,就证明证书未被修改过 ## 数字证书的签发过程 ![digital signature][2] ------ [1]: https://cdn.ehlxr.top/images/typecho/https.jpg [2]: https://cdn.ehlxr.top/images/typecho/digital_signature.jpg — The End — Last modification:April 14th, 2020 at 10:19 am © 允许规范转载 Support If you think my article is useful to you, please feel free to appreciate ×Close Appreciate the author Sweeping payments Pay by AliPay Pay by WeChat