-
客户端向服务器发起请求,请求中包含使用的协议版本号、一个客户端生成的随机数和客户端支持的加密方法。
-
服务器接收到请求后,确认双方使用的加密方法,并给出服务器的证书和一个服务器生成的随机数。
-
客户端确认服务器证书有效后,生成一个新的客户端随机数,并使用服务器证书中的公钥加密这个随机数,然后发给服务器,并且还会提供一个前面所有内容的hash的值,用来供服务器检验。
-
服务器使用自己的私钥,来解密客户端发送过来的随机数,并且提供前面所有内容的hash值来供客户端检验。
-
客户端和服务器根据约定的加密方法使用前面的三个随机数,生成对话秘钥,以后的对话过程都使用这个秘钥来加密信息。