HTTPS的通信步骤
- 客户端发送报文给服务器开始进行SSL通信。报文中包含客户端支持的SSL指定版本、客户端生成的随机数、加密组件(加密算法以及密钥长度)。
- 服务器发送响应报文给客户端。和客户端一样,报文中包含SSL版本、服务器生成的随机数、加密组件(从接收到的客户端加密组件内筛选出来的)。
- 服务器把公钥证书发送给客户端,自己保存着私钥。 服务器把自己的公钥登陆至数字证书认证机构,数字证书认证机构用自己的私钥向服务器的公钥署数字签名并颁发公钥证书。
- 服务器发送报文告知客户端最初阶段的SSL握手协商部分结束。
- 客户端用服务器的公钥对生成的随机数加密后发送给服务器。客户端拿到服务器的公钥证书后,使用数字证书认证机构的公钥向数字证书认证机构验证公钥证书的数字签名,以确认服务器的公钥的真实性,然后生成一个新的随机数,用公钥加密这个随机数发送给服务器。
- 服务器用私钥解密后获得客户端发来的随机数。
- 客户端和服务器根据约定的加密方法,使用前面三个随机数生成对话密钥,用来加密接下来的通信过程。