您的位置:首页 > 理论基础 > 计算机网络

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

2017-08-29 17:01 295 查看
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,结果如下图所示。


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


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


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。


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


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


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

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


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


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


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


测试脚本内容太多,这里给出地址:链接: https://pan.baidu.com/s/1kV5OTin 密码: ykea。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: