浅谈https的工作原理
前言:对于一个学习IT知识的人来说,图文并茂来说明知识是比较易于理解。
想简单的理解HTTPS,先要理解下非对称加密和对称加密
HTTPS交互过程如下图
1、Client发送一个请求到Server
2、Server会生成私钥和公钥
3、服务器会生成一个证书返回给客户端,这个证书里包括Server生成的公钥、颁发日期、过期时间等信息。
4、服务器会验证这个证书是否有效合法
5、如果证书有效,Client会生成一个Key(这个key用于以后的数据加密)。
6、Client用证书里面的公钥对Key进行加密并上传到Server
7、Server用私钥对Client传过来的key进行解密
8、Server用key加密数据,返回Client数据(如网页内容)
9、Client用key解密得到网页内容并显示在浏览器上面
注:
HTTPS请求在第一次请求时是用非对称加密的方式进行通信,双方在第6-7的会话成功,也就是都有了一个key之后,在以后的会话中都是用对称加密
直到证书无效过期,才又重复1-7的过程。可想,如果每次都用非对称加密,那效率是相当低的,我们使用Https的目录是希望数据加密,1-7是加密的前提,拿双方拿到key的同时,不被外界截取。