nginx之SSL原理

何为SSL

    SSL:Secure Sockets Layer,即安全套接层,及其继任者传输层安全是为网络通信提供安全及数据完整性的一种安全协议。例如:我们输入网址时,例如我们访问百度时,访问的网址是www.baidu.com,但是你可以试一下,你在网址栏上输入后回车跳转,会加上HTTPS,这就是加上了HTTPS协议,加密传输,安全性更高。那么SSL的原理是什么,下面请小编为大家详细解释!


HTTPS的前世今生

普通的传输

    普通的传输即浏览器输入网址,经过DNS解析,发送到服务器,他们之间的交流完全都是公开透明的,于是很容易有安全隐患。


对称加密

    这时候,我们需要提高安全系数,于是加密传输,发送方在数据上使用加密算法加工成密文,接收方用解密算法解密回数据。这时候发送方在发送密文的同时还会发送**。同样,**也会在路途中被人劫获,同样不安全。


非对称加密

    于是,出现非对称加密。相对于对称加***相同,非对称加密发送方和接收方使用不同的**,每一方都有公钥和私钥。公钥是全世界都知道的,私钥只有自己知道。发送方使用对方的公钥加密,接收方使用自己的私钥解密。安全系数够高了吧!

    但是,玩玩没想到。这时候中间来一个小偷,发送方用中间人的公钥加密,中间人用自己的私钥获取数据,然后用接收方的公钥加密,再发送给接收方,接收方用自己的私钥解密,这时候中间人已获取数据,但是发送方和接收方还以为他们一直在直接通信。

    哎呀,同样不安全啊!


认证中心+数字签名+非对称**

    根据上方,我怎么就知道我接收到的就是发送方给我发的,而不是中间人发的,这时候就要做匹配。数据都一样,怎么做匹配。于是认证中心和数字签名来了。认证中心是公认的组织,它颁发的证书可信,并且发送方用CA(认证中心)的数字签名将数据和自己的一些信息加工成信息摘要,然后接收方再根据CA的公钥进行解密,一对比就知道是不是正确的发送方了。

    来张图,提供一下形象思维。

    nginx之SSL原理

    SSL就是采用这种认证中心和数字签名的https加密协议这种原理。


SSL处理过程

1.浏览器发送地址到服务器。

2.服务器发送数字证书以及服务器的公钥给浏览器。

3.浏览器用预制的CA列表验证证书,如果有问题,立即提示风险。

4.如果正确,浏览器产生随机对称**,并且用服务器的公钥加密。

5.服务器用自己的私钥进行解密,并且得到对称**。

6.服务器给浏览器发送它想要的内容,通信通道建立并安全。


搭建过程

    这里就不讲述了,感兴趣的同学可以参考这篇博客: http://blog.****.net/kwy15732621629/article/details/75212085

        http://blog.****.net/kwy15732621629/article/details/76602241