ssl_error_rx_record_too_long和Apache SSL

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

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

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

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

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

解决方案

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

希望这有助于任何人发现这个问题,试图调试它在未来。

800593 次浏览

向用户询问他们在浏览器中使用的确切URL。如果他们输入https://your.site:80,他们可能会收到ssl_error_rx_record_too_long错误。

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

$HTTPD -k $ARGV

:

$HTTPD -k $ARGV -DSSL

希望这对大家有所帮助。

在我的情况下,我忘记在配置中设置SSLEngine On。像这样,

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

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

在我的情况下,我必须更改<VirtualHost *>VirtualHost *:80>(这是Ubuntu的默认设置)。否则,端口443没有使用SSL,而是将普通HTML发送回浏览器。

你可以很容易地检查这是否是你的情况:只要连接到你的服务器http://www.example.com:443。如果您看到的是纯HTML,那么您的Apache根本没有在端口443上使用SSL,很可能是由于VirtualHost配置错误。

干杯!

我的问题是由于VPN连接上的低MTU。

netsh interface ipv4 show inter


Idx  Met   MTU   State        Name
---  ---  -----  -----------  -------------------
1 4275 4294967295  connected    Loopback Pseudo-Interface 1
10 4250   **1300**  connected    Wireless Network Connection
31   25   1400  connected    Remote Access to XYZ Network
< p >修复: netsh interface ipv4 set interface "无线网络连接" mtu=1400

这也可能是非vpn连接的问题…

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

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

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

我的解决方案是default-ssl没有在apache 2....中启用只放SSLEngine On

我必须执行a2ensite default-ssl,一切正常。

请参见这个链接

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

如果你在设置一个新的https vhost后出现错误,并且配置似乎是正确的,记得在sites-enabled中也链接。

Subimage提到的链接对我来说是正确的。它建议更改虚拟主机标记,即从<VirtualHost myserver.example.com:443>改为<VirtualHost _default_:443>

错误码:ssl_error_rx_record_too_long

这通常意味着服务器上的SSL实现不正确。该错误通常是由服务器端问题引起的,服务器管理员需要对此进行调查。

下面是一些我们建议尝试的方法。

  • 确保服务器上的端口443是打开的并已启用。这是https通信的标准端口。

  • 如果SSL使用非标准端口,那么FireFox 3有时会给出这个错误。确保SSL在端口443上运行。

  • 如果使用Apache2,检查SSL端口是否为443。这可以通过设置ports.conf文件来完成,如下所示

    Listen 80
    Listen 443 https
    
  • Make sure you do not have more than one SSL certificate sharing the same IP. Please ensure that all SSL certificates utilise their own dedicated IP.

  • If using Apache2 check your vhost config. Some users have reported changing <VirtualHost> to _default_ resolved the error.

That fixed my problem. It's rare that I google an error message and get the first hit with the right answer! :-)

In addition to the above, these are some other solutions that other folks have found were causing the issue:

  • Make sure that your SSL certificate is not expired

  • Try to specify the Cipher:

    SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM:+SSLv3

在我的情况下,我在虚拟主机文件中有错误的IP地址。监听是443,节是<VirtualHost 192.168.0.1:443>,但服务器没有192.168.0.1地址!

老问题了,但第一个结果是谷歌,这就是我要做的。

安装了Apache的Ubuntu 12.04桌面

当我安装Apache时,所有的配置和mod_ssl都已经安装了,但是还没有链接到正确的位置。注意:下面的所有路径都相对于/etc/apache2/

mod_ssl存储在./mods-available中,SSL站点配置在./sites-available中,你只需要将这些链接到它们在./mods-enabled./sites-enabled中的正确位置

cd /etc/apache2
cd ./mods-enabled
sudo ln -s ../mods-available/ssl.* ./
cd ../sites-enabled
sudo ln -s ../sites-available/default-ssl ./

重新启动Apache,它应该可以工作。我试图访问https://localhost,所以你的结果可能会因外部访问而异,但这对我有用。

您还可以尝试修复hosts文件。

保留vhost文件和完全限定的域,并在hosts文件设置 (debian)中添加主机名

ip.ip.ip.ip name name.domain.com

重新启动apache2后,错误应该消失了。

对我来说,解决方案是我的ddclient没有正确地cronning…