开始加密通信之前,客户端和服务端首先必须建立连接和交换参数,这个过程叫做握手。握手阶段细分为五步:
1.客户端发送出协议版本号,一个客户端生成的随机数,以及客户端支持的加密方法。
2.服务端确认双方使用的加密方法,并给出数字证书以及一个服务器生成的随机数。
3.客户端确认数字证书有效,然后生成一个新的随机数,并使用数字证书中的公钥加密这个随机数,发送给服务端。
4.服务端使用自己的私钥,解密出随机数。
5.客户端和服务端根据约定的加密方法,使用前面的三个随机数生成对话密钥,用来加密接下来的对话。