-
客户端先发送自己支持的加密协议以及版本信息,ssl,tls
-
服务器端选择合适的加密协议
-
服务器端返回客户端数字证书,证书内容:
证书的版本信息; 证书的序列号,每个证书都有一个唯一的证书序列号; 证书所使用的签名算法; 证书的发行机构名称,命名规则一般采用X.500格式; 证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围为1950-2049; 证书所有人的名称,命名规则一般采用X.500格式; 证书所有人的公开密钥; // 服务器的公钥 证书发行者对证书的签名; -
客户端接收证书后首先验证证书的合法性(使用签发机构的根证书验证),通过后生成一个随机数(对称秘钥)然后用从数字证书里拿到的服务器公钥对随机数加密传输发送到服务端。
-
服务器端接收到客户端发送的数据用私钥解密拿到随机数(通信用对称秘钥),然后用此随机数对要发送的数据加密
-
客户端接收到上一步服务端发来的数据后用第4步自己生成的随机数(对称秘钥)作为私钥解密数据
-
http的通信部分另作介绍,此刻ssl通信开始