在干净安装的ubuntu 14.04.1服务器上禁用Apache2中的SSLv3

我有一个新安装的ubuntu服务器版本14.04.1我有启用SSL的apache2。 我想禁用SSLv3

(我知道这是一个很受欢迎的问题,但我已经在多个网站上搜索了所有其他答案,我相信我已经遵循了他们建议的所有步骤。)

当我使用命令时:

nmap --script ssl-enum-ciphers -p 443 MYDOMAIN.com 

我可以看到两组密码。 一个SSLv3和一个TLSV1.0

我启用了SSL模块,它的配置文件是/etc/apache2/mods-enabled/ssl.conf

我通过改变线来改变它

 SSLProtocol all 

 SSLProtocol All -SSLv2 -SSLv3 

从所有文档和Web教程中,这应该禁用SSLv3。

我用命令重启apache

 sudo service apache2 restart 

但没有变化。 SSLv3仍然列出。

我试过停止服务器并重新运行命令,以确保我不会意外地检查错误的服务器。 正如所料,结果会发生变化

任何人都可以提出我犯的错误。

罗伯特

我的确切ubuntu版本:

 root@xxxx:/etc/apache2/mods-enabled# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.1 LTS Release: 14.04 Codename: trusty 

我的确切apache2版本:

 root@xxxx:~# apache2 -v Server version: Apache/2.4.7 (Ubuntu) Server built: Jul 22 2014 14:36:38 

我的确切openssl版本:

 root@xxxx:~# openssl version OpenSSL 1.0.1f 6 Jan 2014 

参考文献:

 http://httpd.apache.org/docs/current/mod/mod_ssl.html#sslprotocol 

我发现我有其他配置文件覆盖了该选项。

通过运行可以找到文件:

 cd /etc/apache2 grep -r "SSLProto" . 

不再支持SSLv2。

因此

 SSLProtocol All -SSLv2 -SSLv3 

不行

 SSLProtocol All -SSLv3 

在您的apache配置文件中使用以下设置:

 SSLProtocol ALL -SSLv2 -SSLv3 SSLHonorCipherOrder On SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS 

然后重启你的apache并检查你的网站

https://www.ssllabs.com/ssltest/analyze.html?d=www.yourfancysite.com

它给了我A级(截至2017年7月),而我之前的设置我只有F 🙂

致记:

https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/