我知道这里有一些与这个主题相关的问题。但我真的不知道我还能做什么。
所以重点是:
- 我在 OpenSuse 12.3 上使用 Apache 2.2.22。
- SSLProtocol 选项位于我的 ssl.conf 中
我已经尝试了所有这些选项:
SSLProtocol ALL -SSLv2 -SSLv3 ---------- SSLProtocol +TLSv1 -SSLv2 -SSLv3 ---------- SSLProtocol TLSv1 ---------- SSLProtocol -ALL TLSv1 ----------
但无论我尝试什么,所有协议仍然可用......
为什么我无法禁用它?
编辑:所以我已经尝试了很多,所以我想回顾一下:
我只有一个 SSLProtocol 声明,并且将它放在哪里(在我的 vhost conf 或我的 ssl-default conf 中)并不重要。
我知道它已加载,因为使用选项“-all”拒绝所有协议效果很好。拒绝特殊协议不起作用(如选项 -SSLv3)。如果允许一种协议,则每个协议都可用(例如,使用“SSLProtocol TLSv1 -SSLv2 -SSLv3”或“SSLProtocol -all TLSv1”每个协议都可用!)。
一些想法?
答案1
我刚刚用 POODLE 漏洞利用自己解决了这个问题。
仅适用于 OpenSuSE,将以下内容添加到您的/etc/apache2/ssl-global.conf
<IfDefine SSL>
<IfDefine !NOSSL>
<IfModule mod_ssl.c>
#Your other stuff
SSLProtocol All -SSLv2 -SSLv3
</IfModule>
</IfDefine>
</IfDefine>
使用以下命令保存、退出并重新启动 apachercapache2 restart
如果仍有任何问题请告诉我。
答案2
看起来你的SSLProtocol ...
加载后SSL站点。
您可以通过以下方式检查是否属于这种情况:
strace httpd -t 2>&1 | egrep 'open\("\/etc\/(apache(2|)|httpd)\/.*\.conf'
不知道opensuse如何实现apache2,也许使用apache2 -t
而不是httpd -t
.
如果你的SSL协议低于你的站点会议或或包含您的配置站点定义,该配置不适用于您的站点会议。
那么你有两个选择:
- 确保SSL协议在您之前加载站点会议。
- 实施
SSLProtocol ...
在你的站点会议/站点定义。
答案3
尝试这个
SSLProtocol -ALL +TLSv1
代替
SSLProtocol ALL -SSLv2 -SSLv3
----------
SSLProtocol +TLSv1 -SSLv2 -SSLv3
----------
SSLProtocol TLSv1
----------
SSLProtocol -ALL TLSv1