Nginx配置SSL协议

本文介绍了SSL/TLS协议的作用和层次结构,强调了安全协议的重要性。通过实例展示了如何检测并修复Nginx中的CVE-2016-2017漏洞,包括检查Nginx的OpenSSL编译方式、升级OpenSSL模块以及修改Nginx的SSL配置以增强安全性。

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。


以上这些是基本的关于SSL的介绍, 通常来讲既然有安全措施, 就会有相应的破解办法。如果有人找到了方法, 对应的也就有了一个安全漏洞。

近年比较有名的心血漏洞(Heartbleed)漏洞给互联网安全带来了很大的危机, 所幸很快公布了安全补丁措施。下面我来介绍下发现安全传输层漏洞的时候怎么处理。


下面我们从检测一个网址的SSL/TLS是否符合标准或有明显的安全漏洞, 然后进行一些对应的处理。

1.  打开https://myssl.com/输入要检测的网址

    

    检测发现有CVE-2016-2017漏洞, 易受攻击, 套件版本低导致安全系统下降。



2. 解决CVE-2016-2017漏洞

    目前解决的办法, 就是升级OpenSSL模块, 新版中修复了这个问题。在Linux环境中首先要判断Nginx对OpenSSL模块采取的是静态还是动态编译。

    不少服务器使用的Nginx,是静态编译opensssl,直接将openssl编译到nginx里面去了,这就意味着,单纯升级openssl是没有任何效果,Nginx不会加载外部的openssl动态链     接库的,必须将nginx重新编译才可以根治。

    输入命令/usr/sbin/nginx -V查看当前机器的编译配置, 如果没有包含-with-openssl=, 说明是动态编译, 那么只要用yum更新OpenSSl版本, 然后重启Nginx, 相对比较简单。

    

3. 修改Nginx套层协议配置

    打开/etc/nginx/conf.d/*.conf配置文件, 找到监听(listen)开启SSL的server, 如果只配置了证书路径, 那么nignx就会使用默认的安全协议使用配置。

   为了提高安全性, 我们需要设置合适的安全协议。

    将一下配置插入到开启了ssl协议的安全监听端口, 然后reload nginx配置文件即可。

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers  ECDSA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!DH:!RC4;
    ssl_prefer_server_ciphers   on;

     

4. 经过以上配置, 我们重新检测当前网址, 查看结果。

     

       

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值