首先在申请CA证书时:
ca机构使用自身的私钥 对 名、持有人等信息 做hash后的hash值 做签名,一块给到申请人。
申请人在自己服务器布置 https证书。
当客户端 请求服务端时,服务端 下发证书。并且带着一个公钥A
客户端 对域名、持有人、过期时间进行hash1, 并且 用本地ca证书公钥 解开 ca机构的hash2
二者做对比 hash1 == hash2 ,认为证书是这个域名的, 否则认为不是
然后下一步 随机一串字符, 用服务端下发的公钥A 就行加密, 发送给服务端, 服务端用公钥A对应的私钥解密,得到这个字符串。
然后用这个字符串做客户端于服务端的数据加密传输。
总之:
ca证书验证合法性 使用了一次 非对称加密
用来传输堆成加密的key, 使用了一次 非对称加密
对称加密的key 用来传输数据, 是 对称加密。
验证ca证书合法性, 也用到了 hash算法, 也用到了签名