https加密解密过程详解

在日常互联网浏览网页时,我们接触到的大多都是 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。

未完待续...

猜你喜欢

转载自www.cnblogs.com/phpper/p/9175750.html