我正在尝试禁用 SSLv3 以避免 Poodle 问题。我使用以下说明作为指导:https://access.redhat.com/solutions/1232413
我已将以下行应用于我的配置文件:
SSLProtocol All -SSLv2 -SSLv3
并重新启动了apache,但看起来我仍然很容易受到攻击。我正在使用这个工具来验证:https://access.redhat.com/labs/poodle/
我还执行了 grep 来确保 SSL 在其他任何地方都不是活动的,但事实并非如此。
我看到了这篇文章:如何在 Apache 中禁用 SSLv3?,接受的答案指出您必须在每个虚拟主机节中放入以上行,这是真的吗?我在该服务器上确实有其他虚拟主机,但它们需要安全。
** 编辑:使用 SSL 引用为站点添加清理后的配置文件。 **
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/html/xxxxxx.xxxxxx.xxx"
ServerAlias xxxxxx.xxxxxx.xxx
ServerAlias xxxxxx.xxxxxx.xxx
ServerName xxxxxx.xxxxxx.xxx
ErrorLog logs/xxxxxx.xxxxxx.xxx-error_log
CustomLog logs/xxxxxx.xxxxxx.xxx-access_log common
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
DocumentRoot "/html/xxxxxxxxxxx/xxxxxx”
ServerAlias xxxxxx.xxxxxx.xxx
ServerAlias xxxxxx.xxxxxx.xxx
ServerName xxxxxx.xxxxxx.xxx
ErrorLog logs/xxxxxx.xxxxxx.xxx-error_log
CustomLog logs/xxxxxx.xxxxxx.xxx-access_log common
SSLEngine on
SSLCertificateFile /path/to/cert/xxxxxx.xxxxxx.xxx.crt
SSLCertificateKeyFile /path/to/key/xxxxxx.xxxxxx.xxx.key
SSLCertificateChainFile /path/to/chain/xxxxxx.xxxxxx.xxx.ca
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ALL:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
<Directory "/html/xxxxxx.xxxxxx.xxx">
DirectoryIndex index.php index.htm index.html
Options -Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
我的其他虚拟主机文件只是端口 80 的标准配置,没有什么特别的。
sudo service httpd configtest 返回语法 OK。
答案1
我解决了这个问题,我必须添加以下行:
SSLProtocol all -SSLv2 -SSLv3
在 /etc/httpd/conf.d/ssl.conf 中
由于某种原因,虚拟主机配置中的设置不具有优先权。
答案2
我用来定位所有 HTTPS 虚拟主机的一种方法是递归 grep httpd/apache2 目录下的所有配置文件。
/etc/apache2# grep -nR 'SSLEngine on' .