在 Nginx 上禁用 SSLv3
Disable SSLv3 on Nginx
为什么我的服务器上仍然启用了 SSLv3?我想禁用是因为在某些电脑上因为安全问题打不开我的页面
我找到这个 guide:
但目前我已经设置好了。我的服务器托管在 Google 云端,我目前有这个 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;
...
OpenSSL 版本为 1.0.1f 2014 年 1 月 6 日。
有什么问题吗?
我可以确认 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 浏览器的网站 and/or 运行 ssllabs.com.
的额外测试
要禁用 SSLv3,您必须编辑 默认服务器 配置,而不仅仅是任意虚拟主机配置。它只能为侦听套接字禁用,而不仅仅是虚拟服务器。您提供的配置片段表明您正在使用每台服务器包含的配置文件,因此您必须在适当的 listen
指令中找到带有 default_server
的配置文件,并在那里禁用 SSLv3:
server {
listen 443 default_server ssl;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
...
}
或者,更好的是,在 nginx.conf
中编辑 http
级别的配置:
http {
...
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
...
}
您也可以考虑将 nginx 升级到最新版本。在 nginx 1.9.1+ 中,默认禁用 SSLv3。
我已经创建了要在 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:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
修复 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 支持
listen 443 ssl;
listen [::]:443 ssl;
在上面的块
中添加default_server
listen 443 default_server ssl;
listen [::]:443 default_server ssl;
或阅读此处:
https://gist.github.com/kaushikgandhi/663e6e47d8a42025e848e454f5e064c4
为什么我的服务器上仍然启用了 SSLv3?我想禁用是因为在某些电脑上因为安全问题打不开我的页面
我找到这个 guide:
但目前我已经设置好了。我的服务器托管在 Google 云端,我目前有这个 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;
...
OpenSSL 版本为 1.0.1f 2014 年 1 月 6 日。
有什么问题吗?
我可以确认 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 浏览器的网站 and/or 运行 ssllabs.com.
的额外测试要禁用 SSLv3,您必须编辑 默认服务器 配置,而不仅仅是任意虚拟主机配置。它只能为侦听套接字禁用,而不仅仅是虚拟服务器。您提供的配置片段表明您正在使用每台服务器包含的配置文件,因此您必须在适当的 listen
指令中找到带有 default_server
的配置文件,并在那里禁用 SSLv3:
server {
listen 443 default_server ssl;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
...
}
或者,更好的是,在 nginx.conf
中编辑 http
级别的配置:
http {
...
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
...
}
您也可以考虑将 nginx 升级到最新版本。在 nginx 1.9.1+ 中,默认禁用 SSLv3。
我已经创建了要在 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:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
修复 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 支持
listen 443 ssl;
listen [::]:443 ssl;
在上面的块
中添加default_serverlisten 443 default_server ssl;
listen [::]:443 default_server ssl;
或阅读此处:
https://gist.github.com/kaushikgandhi/663e6e47d8a42025e848e454f5e064c4