在日常互联网浏览网页时,我们接触到的大多都是 HTTP 协议,这种协议是未加密,即明文的。这使得 HTTP 协议在传输隐私数据时非常不安全。因此,用于对 HTTP 协议传输进行数据加密,即 HTTPS 。
那么我们再访问https网站时,大家知道https是安全数据加密传输,但是如果让大家仔细描述从访问打开一个网站。到数据整个加解密的流程,估计有很多朋友(可能哈)很难清晰的表达出来吧。
包括我自己描述的也会模拟两可。在此非常有必要详解下整个流程。
要点: https协议对传输内容进行加密,具有更强的安全性,防止被抓包后解析出请求内容。 https是建立在ssl之上的http协议。 服务器支持https协议必须安装一套数字证书,所谓数字证书就是一对公钥和私钥,公钥用来加密,私钥用来解密。为了与下文中的私钥进行区分,这里的公钥和私钥称为公钥1和私钥1。 数字证书可以自己制作或者向组织申请,自己制作的会在客户端弹出提示框,手动验证通过,而申请的就无需客户端手动验证了。 请求过程: 1.客户端访问 https开头的url 2.服务端返回公钥1,客户端验证通过(如果不通过,则访问终断)。 3.客户端根据公钥1生成一个私钥2,这个私钥2用来加密和解密请求信息。使用公钥1对私钥2进行加密,回传给服务端。服务端用私钥1对该信息解密,得到私钥2。至此,客户端和服务端都已经有了私钥2。 4.客户端和服务端之间使用私钥2对信息进行加密后通信,这样即使第三方抓包,也无法轻易获取通信内容了。 https的服务端部署: 1.搞定公钥1和私钥1(申请或者自己造一个)。 2.在nginx配置文件的server域中,配置公钥1和私钥1。
未完待续...
原文地址:https://www.cnblogs.com/phpper/p/9175750.html
时间: 2024-11-08 22:40:39