1、客户端与服务端三次握手建立 TCP 会话;
2、服务端发送证书到客户端;
3、客户端验证证书:
- 验证证书来源的合法:用本地 CA 证书中的公钥解密证书上的数字签名,解密成功则证书发行者的身份得到认证;
- 验证证书的内容的完整性:用相同的单向加密算法(解密出证书主体时得知)计算出证书的特征码与解密后的特征码进行对比,如果相同则说明内容完整性可靠;
- 检查证书的有效期限;
- 检查证书是否在 CA 的证书吊销列表中;
- 检查证书中的主体名称和访问网站的地址是否相同;
4、协商双方都支持的算法,包括单向加密算法、对称加密算法、非对称加密算法,选择最为可靠的;
5、确认 SSL 会话协议版本,如 SSL 3.0、TLS 1.1、TLS 1.2;
6、客户端生成一个一次性对称加密秘钥用服务器端的公钥加密后发送给服务端(也可能是其它的秘钥交换算法),完成秘钥交换;
7、服务端取到客户端请求的资源,用收到的一次性对称加密秘钥加密资源并响应给客户端;
8、客户端以一次性加密秘钥解密资源并渲染;
这里仅简化列出 https 会话的几个重要步骤。
注意:SSL 会话是基于 IP 地址创建的,所以在单 IP 的主机上,仅可以使用一个 https 虚拟主机。
评论区