来自Apache / OpenSSL的SSL间歇性Firefox和Python问题

时间:2012-08-02 19:44:50

标签: apache firefox ssl openssl

我们在Windows 2008 R2 Enterprise上使用Apache 2.2.22。

我们的应用程序使用SSL(OpenSSL)并获得well documented error,但我还无法找到修复程序。错误是只有firefox中的SOMETIMES,这种情况发生了:

the error as seen from firefox

刷新(或点击“再试一次”)修复了错误,但这只是一种解决方法。

另外,尝试使用Python 3 urllib.request库进行连接会产生错误

urllib.error.URLError: <urlopen error [Errno 1] _ssl.c:392: error:1408E0F4:SSL routines:SSL3_GET_MESSAGE:unexpected message>

我最好的猜测是这些都是同样的问题,但我无法确定它。

一个网站推荐fix for nginx,但我不知道如何将其转换为apache修复程序。我不是服务器管理专家,但我想我可以在这里找到一个。

很多人都有这个错误,所以我相信无论谁解决这个问题都会成为网络英雄!

编辑:

我在复制错误时遇到了问题,但我终于找到了一个运行FF 13的人。我没有得到任何好的调试信息,但我点击“再试一次”大约10次,突然我得到了200 OK,网站出现了。

与此同时,我在我的机器上运行FF 13和FF 14(两者都试过),但都没有遇到问题。

1 个答案:

答案 0 :(得分:0)

看起来像someone else has found the answer,我的google-fu让我失望。

来自网站:

“我终于弄清楚Firefox在使用TLS 1.0协议时搞砸了。所以我所要做的就是编辑我的Apache 2.2 httpd.conf以获得这一行:

SSLProtocol -SSLv2 +SSLv3 -TLSv1

我不喜欢这个解决方案。 Mozilla Firefox团队应该发布一个Firefox版本,该版本静态链接到不受此bug影响的较新版本的OpenSSL库。我更喜欢TLS,因为它提供了额外的安全性,所以我最终找到了一条选择安全性而不是SSL库兼容性的行:

SSLProtocol -SSLv2 -SSLv3 +TLSv1

另请注意,我也禁用了SSL v2,因为众所周知,它本身存在缺陷。“

编辑:我已将以下内容添加到我的httpd-ssl.conf文件中,并检查它是否有效:

BrowserMatch ^Mozilla SSLProtocol -SSLv2 +SSLv3 -TLSv1