- 客户端请求服务器
- 服务器返回一个CA证书
- 证书中含有服务器的公钥
- 证书中含有CA的公钥(解密用)
- 使用证书中的CA公钥解密,验证通过获得服务器的公钥
- 生成客户端的密钥(随机数)
- 使用客户端的公钥加密私钥(随机数),发送给服务器
- 服务器使用服务器的私钥解密,获得客户端的密钥
- 密钥 对称加密的密钥(用于加密真正的数据)
- 用于加密客户端密钥的密钥对,私钥服务器自己保存,公钥传给客户端
- CA的密钥对,私钥CA自己保存,公钥内置在各大操作系统及浏览器中,加密传输服务器的公钥
其中
既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密;
同理,既然是签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名,所以可得出私钥负责签名,公钥负责验证。
CA的密钥对: 私钥负责签名,公钥负责验证
服务器的密钥对: 公钥负责加密,私钥负责解密