前言
HTTPS = HTTP + SSL证书,SSL证书由值得信赖的机构颁发(花钱购买),比如CA
白话解析

- 浏览器第一次向服务器发送请求,服务器返回SSL证书,证书里面有一把锁(公钥),服务器拥有这把锁的钥匙(私钥)
- 浏览器生成随机数,用证书里面的公钥加密随机数发给服务器(用证书里面的锁锁住一个包含密码的盒子)
- 服务器用私钥解密随机数(服务器用钥匙打开盒子,取出盒子里面的密码)
- 此时,浏览器和服务器之间有一个相同的随机数,两者之间传输数据,前者用这个随机数加密,后者用这个随机数解密(双方知道一个密码箱的密码,所有的通信都放在这个密码箱里面,其他人就看不到)
要点:
1. 服务器获取随机数之前的加密用的是非对称算法,因为是公钥加密,私钥解密
2. 服务器获取随机数之后的加密用的是对称算法,随机数加密,随机数解密
3. 第一次建立https连接后,会返回sesson id 和 session ticket,这样后面再连接就略过了证书认证环节