客户->服务器: 请求cer证书
服务器->客户: cer证书
客户: 验证cer证书是否合法. 方法是: cer证书有对应的ca, 还有ca用私钥c加密的指纹. 客户接到cer证书以后, 调用cer证书对应的ca证明, 这个ca证明已经存在客户内部了. 证明里面有ca给客户的公钥c, 通过公钥c, 可以解密cer证书的指纹. 这个指纹如果和cer证书上的ca的明文信息吻合, 则说明cer证书合法.
客户: 用cer证书中服务器发的公钥a, 对一串随机对称密钥s加密, 为字串m.
客户->服务器: 将m发给服务器, 让服务器用私钥解密.
服务器: 用私钥a将m解密, 得到s. 再将s用私钥加密, 得到字串n.
服务器->客户: 发送n给客户.
客户: 用公钥a将n解密, 得到s. 则确定该服务器安全. 生成一个对称加密的算法和对应密钥,以公钥a加密为t.
客户->服务器: t.
服务器: 解密t, 得到对称加密算法和密钥. 用对称加密算法和密钥加密"收到".
服务器->客户: {收到}
客户->服务器:{请求某个页面}
服务器->客户:{页面内容}
星期六, 01/29/2022 - 12:25 — 杨超