nginx+openssl配置https协议需要注意的问题

nginx配置https协议需要用到openssl库,这个库一般系统会自带,但是自带的库都是版本比较老旧,会出现一些安全漏洞,比如Heartbleed(心血漏洞CVE-2014-0160),CCS(ChangeCipherSpecCVE-2014-0224)注入漏洞,CBC padding oracle漏洞(CVE-2016-2107)。如果出现安全漏洞,https协议也会受到威胁,可以通过第三方网站检测,网站地址如下:https://www.ssllabs.com/ssltest/index.html,结果如下图所示。

nginx+openssl配置https协议需要注意的问题_第1张图片

造成这种结果的原因也很明显就是前面提到的的三个问题导致。

nginx+openssl配置https协议需要注意的问题_第2张图片

1、解决问题的办法可以在这些提示中找到,就是升级openssl到指定版本。

nginx+openssl配置https协议需要注意的问题_第3张图片

2、本人亲测,无需下载openssl对应的版本比如openssl-1.0.1.h.tar.gz解压,安装,如果是centos系列,只需要利用yum将openssl升级即可。

yum upgrade openssl
yum upgrade openssl-devel

如果没有安装openssl-devel可以通过一下命令安装openssl-devel

yum install -y openssl-devel

安装完成之后即可通过rpm -qa |grep openssl查看安装的openssl。

nginx+openssl配置https协议需要注意的问题_第4张图片

3、虽然不是官方指定升级到的1.0.1h版本,但是已经是最新的了。可以通过openssl version -a查看编译时间。

nginx+openssl配置https协议需要注意的问题_第5张图片

只要编译时间是2014-04-07之后的基本可以使用,没有必要在意openssl本身的版本号。这是centos/redhat7上的版本,centos/redhat6上的最新版本截止到现在如下图所示:

nginx+openssl配置https协议需要注意的问题_第6张图片

版本关系不大,主要是看编译时间。而且centos6升级openssl之后,需要重启机器才能生效,而centos7不需要重启。

也可以通过查看openssl版本更新说明,发现最新的openssl确实已经修复了以上三个漏洞:

nginx+openssl配置https协议需要注意的问题_第7张图片

4、升级openssl之后,再次通过验证,如下图所示:

nginx+openssl配置https协议需要注意的问题_第8张图片

一片绿,网站等级为A,安全漏洞基本被修复,可以放心使用https协议了。而且之前出现问题的地方,被检测没有问题:

nginx+openssl配置https协议需要注意的问题_第9张图片

5、其实是否是安全的,我们可以通过一个脚本自己检测,不需要到第三方网站检测,尤其是节点多的服务器,需要全部升级配置了openssl之后,才可以去检测,非常麻烦。这里给出一个ssl安全检测的脚本,利用该脚本测试,如果出现如下图所示的结果,基本没有安全漏洞了。

nginx+openssl配置https协议需要注意的问题_第10张图片

测试脚本内容太多,这里给出地址:链接: https://pan.baidu.com/s/1kV5OTin 密码: ykea。

你可能感兴趣的:(linux,openssl,安全漏洞)