我有一个客户试图访问我的一个站点,他们一直得到这个错误> ssl_error_rx_record_too_long

他们在所有浏览器,所有平台上都得到这个错误。我根本无法重现这道题。

我和我的服务器位于美国,客户位于印度。

我在谷歌上搜索了这个问题,主要来源似乎是SSL端口在HTTP中说话。我查了我的服务器,这是不可能的。我尝试了这里提到的解决方案,但客户表示它没有解决问题。

有没有人能告诉我如何修复这个,或者如何复制这个?

解决方案

原来客户有一个配置错误的本地代理!


当前回答

在我的例子中,我忘记在配置中设置SSLEngine On。像这样,

<VirtualHost _default_:443>
  SSLEngine On
  ...
</VirtualHost>

http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslengine

其他回答

我在某些浏览器访问我的SSL网站时遇到了同样的问题。 我发现我必须给fireFox正确的代理(fireFox直接访问互联网)。

根据局域网配置(隧道、过滤、代理重定向),FireFox的“直接访问internet”模式会抛出此错误。

我有一个混乱的虚拟主机配置。请记住,80端口需要一个不带SSL的虚拟主机,443端口需要另一个带SSL的虚拟主机。您不能像webmin生成的配置所尝试的那样,在一个虚拟主机中同时拥有两者。

请看这个链接。

我查看了所有的apache日志文件,直到我发现了实际的错误(我已经将<VirtualHost>从_default_更改为我的fqdn)。当我修复这个错误时,一切都正常工作。

在我的例子中,我忘记在配置中设置SSLEngine On。像这样,

<VirtualHost _default_:443>
  SSLEngine On
  ...
</VirtualHost>

http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslengine

在我的情况下,问题是https无法正确启动,因为听443是在“IfDefine SSL”的指示,但我的apache没有开始与-DSSL选项。修复是改变我的apachectl脚本:

$HTTPD -k $ARGV

to:

$HTTPD -k $ARGV -DSSL

希望这对大家有所帮助。