在干净安装的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/