如何在 Apache 中禁用 SSLv3?

如何在 Apache 中禁用 SSLv3?

每个人似乎都在谈论贵宾犬漏洞今天。每个人都建议使用以下配置指令在 Apache 中禁用 SSLv3:

SSLProtocol All -SSLv2 -SSLv3

而不是默认的

SSLProtocol All -SSLv2

我已经做到了这一点,但在使用各种工具反复测试后并没有感到高兴(这是一个快速的),我发现 SSLv3 很高兴被我的服务器接受。

是的,我确实重新启动了 Apache。是的,我对所有配置文件进行了递归grep,并且在任何地方都没有任何覆盖。不,我没有使用 Apache 的某些古老版本:

[root@server ~]# apachectl -v
Server version: Apache/2.2.15 (Unix)
Server built:   Jul 23 2014 14:17:29

那么,什么给出呢?一个人如何真的在 Apache 中禁用 SSLv3?

答案1

我遇到了同样的问题...您必须包含SSLProtocol all -SSLv2 -SSLv3在 httpd.conf 中的每个 VirtualHost 节中

VirtualHost 节通常位于 httpd.conf 文件的末尾。例如:

...
...
<VirtualHost your.website.example.com:443>
    DocumentRoot /var/www/directory
    ServerName your.website.example.com

    ...
    SSLEngine on
    ...
    SSLProtocol all -SSLv2 -SSLv3
    ...
</VirtualHost>

还要检查 ssl.conf 或 httpd-ssl.conf 或类似的文件,因为它们可能在那里设置,不一定在 httpd.conf 中设置

答案2

我在 Ubuntu 14.04 上也遇到了同样的问题。读完本文后,我编辑了/etc/apache2/mods-available/ssl.conf.

  • 从:SSLProtocol all
  • 到: SSLProtocol all -SSLv2 -SSLv3 -TLSV1

但这没有用。所以我也编辑了以下部分“SSLCipherSuite” /etc/apache2/mods-available/ssl.conf

  • 从:SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
  • 到:SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SSLv3:!SSLv2:!TLSv1

现在它对我有用了。

顺便说一句,密码套件不受 POODLE 的影响,仅受协议影响——但大多数浏览器都可以使用禁用的 SSLv3 密码套件。

不要将其用于邮件服务器!或者您(也许)会面临无法在某些设备上获取邮件的问题。

答案3

对于 Ubuntu 10.04

要在所有活动虚拟主机上禁用 SSLv3,您需要以下选项

/etc/apache2/mods-available/ssl.conf :

SSLProtocol all -SSLv2 -SSLv3

答案4

确保 SSLCipherSuite才不是包含 !SSLv3。在该上下文中,它还指 TLS1.0 和 TLS1.1。

例如,如果您的配置是SSL协议全部,由于 SSLCipherSuite 如何使用 !SSLv3 配置,因此仅 TLS1.2 可用。

相关内容