SSL/TLS协议基本流程
客户端向服务器索要并验证服务器的公钥
双方协商生产 [会话密钥]
双方采用[会话密钥]进行加密通信
前两步也就是SSL/TLS的建立过程,也就是握手阶段。
SSL/TLS握手

1.ClientHello
首先,客户端向服务器发起加密通信请求,在这一步,客户端主要向服务器发送以下信息:
1.客户端支持的SSL/TLS协议版本
2.客户端生产的随机数,后面用来生产 [会话密钥]
3.客户端支持的密码套件列表,如RSA加密算法
2.ServerHello
服务端收到客户端请求后,向客户端发出响应,服务器回应的内容有如下内容
1.确认SSL/TLS版本,如果浏览器不支持,则关闭加密通信
2.服务器生产的随机数,后面用于生产[会话密钥]
3.确认的密码套件列表,如RSA加密算法
4.服务器的数字证书
3.客户端回应
客户端收到服务器的回应之后,首先通过浏览器或者操作系统中的CA公钥,确认服务器的数字证书的真实性。如果数字证书没有问题,客户端会从数字证书中取出服务器的公钥,然后使用它加密报文,向服务器发送:
1.一个随机数(pre-master key)。该随机数会被服务器公钥加密
2.加密通信算法改变通知,表示随后的信息都将用[会话密钥]加密通信
3.客户端握手结束通知,表示客户端的握手阶段已完成。这一项同时把之前所有内容得到发生的数据做个摘要,同来供服务器校验。
4.服务器的最后回应
服务器收到客户端的第三个随机数(pre-master key)之后,通过协商的加密算法,算出本次通信的【会话密钥】,然后向客户端发送
1.加密通信算法改变通知,表示随后的信息都将用【会话密钥】加密通信
2.服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时把之前所有的内容的发生的数据做个摘要,用来供客户端校验
