Nginx的sslv3狮子狗禁用

我尝试在我的nginx中设置没有SSLv3的SSL证书,但SSL实验室说,我的服务器有SSLv3如何禁用它。

我的configuration:

add_header Strict-Transport-Security max-age=31536000; add_header X-Frame-Options DENY; ssl_session_cache shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED"; ssl_prefer_server_ciphers on; add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains'; 

这里是一个很好的教程,如何configurationnginx的最佳设置。

https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html

您的SSLv3configuration是正确的。

 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 

在post里是你的密码部分。

 ssl_ciphers 'AES256+EECDH:AES256+EDH'; 

根据https://www.tinfoilsecurity.co …或ssllabs.com的testing,我已经正确地设置了我的ssl_protocols,并且无法让它禁用SSLv3。 最终我发现了

其中提到尝试的https://disablessl3.com/#test

 openssl s_client -connect <hostname:443> -ssl3 

作为命令来testing它。 当我这样做的时候,我发现nginx正在使用另一个虚拟主机的SSL证书进行初始握手,而不是在这个特定的虚拟主机中设置的证书。 一旦我在所有使用SSL的虚拟主机中的ssl_protocols行中添加,它突然开始工作。

我修好了! 这是我的configuration

 ssl on; ssl_ciphers 'AES256+EECDH:AES256+EDH::!EECDH+aRSA+RC4:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS'; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:10m; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.4.4 8.8.8.8 valid=300s; resolver_timeout 10s; ssl_prefer_server_ciphers on; add_header Strict-Transport-Security max-age=63072000; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; 

我的等级: 在这里输入图像说明