关于https研究了一段时间了,大概简单说一下原理:
1. 对称加密 和 非对称加密
对称加密 生成一个所谓公钥,公钥可以用来加密解密, 拿到公钥,任何人都能解密
非对称加密,生成一对秘钥, 用公钥加密, 用私钥解密。公钥加密的内容,需要用私钥才能解密, 私钥加密的内容,公钥才能解密。
2. 浏览器发起请求,服务器返回 用 "非对称加密生成的公钥", 自己保存私钥。
3. 浏览器拿到这个公钥,然后 自己生成一个用对称加密生成的公钥。
然后 用服务器返回的 那个 用非对称加密生成的公钥加密一下,再提交给服务器, 并且自己保存一份。
4. 至此,最终由浏览器生成的 用对称加密 生成的公钥,通过密文形式发送给了服务器端,并且不用担心被拦截破解。
同时,浏览器自己备份一份,之后传输的所有数据,均用此公钥进行加密。
另外,CA证书这块,没太吃透,原则上,操作系统会保存一份根证书,但是怎么通过根证书来验证CA证书,这块还没吃透