一、概念
- https就是在http的基础上增加一个ssl协议(SSL是基于HTTP之下TCP之上的一个协议层,是基于HTTP标准并对TCP传输数据时进行加密,所以HPPTS是HTTP+SSL/TCP的简称)。
- 就是在每次通信的时候客户端先从服务端拿到一个CA证书(包含秘钥),并且客户端浏览器验证该证书的安全性,激活客户端浏览器到网站服务器之间的"SSL加密通道"在每次数据传输过程中都要经过SSL这一层进行数据加密。
二、https的工作流程
- 网站的开发人员私下向权威机构(阿里云,可以理解成皇帝)申请证书(圣旨),权威机构颁发证书(皇帝颁发圣旨)。
- 开发人员下载证书之后配置到自己的代理服务器上,比如Nginx
- 客户端访问网站会首先得到网站的签名证书(包含公钥等信息),并且用权威机构的公钥(浏览器内部自带的公钥)进行验证是否是权威机构颁发的。
- 验证成功后浏览器会生成一个随机密码串,这个密码串是用网站的公钥进行加密的(证书里面携带的)
- 网站收到这个加密的密文,用自己的私钥进行解密得到那个随机密码串
- 双方的每次数据传输都用那个随机密码串进行加密来保证数据安全性。