https原理
https原理
1 服务端把公钥发给客户端,客户端用公钥加密对称加密的密钥再发给服务端,服务端用私钥解密。然后使用对称加密进行传输。
2 客户端如何验证服务端的身份?
证书颁发机构(CA, Certificate Authority)给服务端颁发证书。
首先 CA 会把持有者的公钥、用途、颁发者、有效时间等信息打成一个包,然后对这些信息进行 Hash 计算,得到一个 Hash 值; 然后 CA 会使用自己的私钥将该 Hash 值加密,生成 Certificate Signature,也就是 CA 对证书做了签名; 最后将 Certificate Signature 添加在文件证书上,形成数字证书;发给服务端。
客户端获取服务端证书, 首先客户端会使用同样的 Hash 算法获取该证书的 Hash 值 H1; 通常浏览器和操作系统中集成了 CA 的公钥信息,浏览器收到证书后可以使用 CA 的公钥解密 Certificate Signature 内容,得到一个 Hash 值 H2 ; 最后比较 H1 和 H2,如果值相同,则为可信赖的证书,否则则认为证书不可信。