在Nginx上禁用SSLv3

时间:2015-07-24 23:12:15

标签: ssl nginx ssl-certificate sslv3

为什么我的服务器仍启用SSLv3?我想禁用由于安全问题导致某些计算机无法打开我的页面的原因。

我发现了guide

enter image description here

但目前我已经确定了。我的服务器托管在Google Cloud中,我目前有这个Nginx配置文件:

...
ssl on;
ssl_certificate /etc/nginx/dba_certs/dba_ssl2/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/dba_certs/dba_keys/dba.key;

ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
...

2014年1月6日,OpenSSL版本为1.0.1f。

enter image description here

可能出现什么问题?

3 个答案:

答案 0 :(得分:8)

要禁用SSLv3,您必须编辑默认服务器配置,而不仅仅是编辑任意虚拟主机配置。它只能为侦听套接字禁用,而不仅仅是虚拟服务器。您提供的配置代码段表明您使用的是每服务器包含的配置文件,因此您必须在相应的default_server指令中找到listen的配置文件,并在那里禁用SSLv3:

server {
    listen 443 default_server ssl;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ...
}

或者,更好的是,在http nginx.conf {}修改http { ... ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ... } 级别的配置:

{{1}}

您也可以考虑将nginx升级到最新版本。在nginx 1.9.1+中,默认情况下禁用SSLv3。

答案 1 :(得分:2)

我可以确认SSL3已启用。要禁用,您需要修改NGINX配置(nginx.conf)或VirtualHost配置文件。在您的情况下,它可能是以下文件:

$ sudo vim /etc/nginx/sites-enabled/dragonboundaimbot.com

        ...
        listen 443 default_server ssl;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ...

$ sudo service nginx restart

SSL3不是唯一的问题。一些密码套件已折旧,不应使用。尝试将密码套件减少到以下内容:

TLS_RSA_WITH_AES_256_CBC_SHA256 (0x3d)  256
TLS_RSA_WITH_AES_256_CBC_SHA (0x35)     256
TLS_RSA_WITH_AES_128_CBC_SHA256 (0x3c)  128
TLS_RSA_WITH_AES_128_CBC_SHA (0x2f)     128
TLS_RSA_WITH_3DES_EDE_CBC_SHA (0xa)     112
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)   ECDH 256 bits (eq. 3072 bits RSA)   FS     256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)   ECDH 256 bits (eq. 3072 bits RSA)   FS    256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)   ECDH 256 bits (eq. 3072 bits RSA)   FS     128
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)   ECDH 256 bits (eq. 3072 bits RSA)   FS    128
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA (0xc012)   ECDH 256 bits (eq. 3072 bits RSA)   FS   112

对于其他改进,请检查,例如使用Chrome浏览器的网站和/或在ssllabs.com上运行其他测试。

答案 2 :(得分:-1)

我已经为在Qualys SSL测试中获得A评级所遵循的步骤创建了一个要点。以及禁用SSLv3并以正确方式启用TSLv1的步骤

添加SSL密码:

  

的ssl_ciphers   ' ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128- GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH + AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA: ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE- DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256: AES128-SHA:AES256-SHA:AES:山茶花:DES-CBC3-SHA:A零位:ENULL:EXPORT:DES:RC4:MD5:PSK:aECDH:EDH-DSS-DES-CBC3 -SHA:EDH-RSA-DES-CBC3-SHA:KRB5-DES-CBC3-SHA&#39 ;;

修复OpenSSL Padding Oracle漏洞:

  

https://gist.github.com/ArturT/bc8836d3bedff801dc324ac959050d12

添加SSL协议:

  

ssl_protocols TLSv1.2 TLSv1.1 TLSv1;

设置首选密码:

  

ssl_prefer_server_ciphers on;

在服务器块中我们应该启用TCP v6和v4支持

  

听443 ssl;

     

听[::]:443 ssl;

在上面的块中添加default_server

  

listen 443 default_server ssl;

     

listen [::]:443 default_server ssl;

或者在这里阅读:

https://gist.github.com/kaushikgandhi/663e6e47d8a42025e848e454f5e064c4