https为了减少资源浪费,通信过程结合了对称加密和公开密钥加密两种算法,在交换密钥环节使用了公开密钥加密算法,建立连接后的通信则使用了对称加密方式。
第一阶段是协商加密方式阶段。
- 客户端发送ssl连接报文,报文中含有客户端支持的ssl版本、加密方式。
- 服务器收到客户端送来的报文,筛选出客户端支持的ssl版本和加密方式,并在报文中返回给客户端。
- 服务器返回证书,证书中包含用于加密的公钥。
- 服务器返回结束报文,至此,客户端和服务器协商好ssl版本和对称加密的方式,同时客户端收到用于加密的公钥。
第二阶段是交换对称加密的密码串,为了防止对称加密的密码串被劫持,使用了公开密钥加密该密码串。 - 结束第一次ssl握手后,客户端生成一个密码串,并使用步骤3得到的公钥加密,得到一个加密的密码串,并发送给服务器。
- 服务器收到客户端传来的密码串,使用自己的私钥对密码串解密,解密该密码串后发送报文给客户端,建立SSL连接。
第三阶段是http通信阶段。客户端和服务器间的通信使用密码串加密。