第一步:

客户端向服务器发送HTTPS请求,服务器将公钥以证书的形式发送到客户端(服务器端存放私钥和公钥)。

第二步:

浏览器生成一串随机数,然后用公钥对随机数和hash签名进行加密,加密后发送给服务器;服务器用私钥解密,取出字符串和hash签名再通过私钥加密后发送给客户端。

第三步:

客户端用公钥对密文进行解密并判断是否被篡改,如果没有篡改,客户端向服务器端发出信息,协商后面的数据通讯将使用生成的随机字符串做为秘钥进行对称密钥,同时通知服务器握手结束。服务器接受到信息后,响应协商的加密秘钥并通知客户端握手结束。