0. 再氵他一篇
SSL/TLS协议运行机制的概述 by 阮一峰
图解SSL/TLS协议 by 阮一峰
公钥和私钥的区别 by CSDN-magiclyj
SSL/TLS双向认证案例参考 by OsChina-风向标
HTTPS 与 SSL 证书概要(runoob)
1. TSL/SSL 握手过程
-
浏览器 -> 网站
自己能够支持的一些验证规则
自己能够支持的SSL/TSL的协议版本
提供1个客户端的随机数(client random) -
网站 -> 浏览器
从中选出一组 加密算法
证书(公钥)
提供1个服务端的随机数(Server random) -
浏览器 -> 网站
验证证书是否受信任
提供1个新的随机数(Premaster secret)
使用证书的公钥加密这个随机数
(如果该网站出示的证书是过期的或不受信的,浏览器会请示用户,用户如果如果接受风险,也可认为验证通过) -
网站 -> 浏览器
使用证书的私钥解密随机数(Premaster secret) -
浏览器 -> 网站
结合前面三个随机数生成1个会话密钥(session key)
后续通信时,使用该密钥加密数据
整个握手过程中的报文可通过HASH算法校验一致性
对话密钥的运算虽然后续通信时都要做,但是本身是对称加密,很快
TSL/SSL握手的后续即简单的HTTP协议,只不过是session key加密后的