日常生活中超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTPS工作流程
1.用户通过浏览器请求https网站,要求与服务器建立SSL连接,告诉服务器自己支持那些加密算法
2.服务器收到请求后,返回网站的数字证书给浏览器,数字证书中包含颁发机构,网址,子域名,公钥,证书有效期等信息
3.客户端验证数字证书,生成随机密钥x,用证书中的公钥对随机密钥x进行加密,并发送给服务器
4.服务器收到之后,用私钥进行解密,得到随机密钥x,然后使用随机密钥x对网页加密,发送给浏览器
5.浏览器收到加密后的网页后用随机密钥x进行解密,得到最终网页