272

我有一位客户试图访问我的一个网站,但他们不断收到此错误 > ssl_error_rx_record_too_long

他们在所有浏览器、所有平台上都会遇到此错误。我根本无法重现该问题。

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

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

谁能告诉我如何解决这个问题,或者我如何重现这个???

解决方案

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

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

4

15 回答 15

183

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

错误代码:ssl_error_rx_record_too_long

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

以下是我们建议尝试的一些事情。

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

  • 如果 SSL 使用非标准端口,则 FireFox 3 有时会出现此错误。确保 SSL 在端口 443 上运行。

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

    Listen 80
    Listen 443 https
    
  • 确保您没有多个 SSL 证书共享同一个 IP。请确保所有 SSL 证书都使用自己的专用 IP。

  • 如果使用 Apache2,请检查您的虚拟主机配置。一些用户报告了更改<VirtualHost>_default_解决该错误。

这解决了我的问题。我很少在谷歌上搜索错误消息并获得正确答案的第一击!:-)

除了上述之外,这些是其他人发现导致问题的其他一些解决方案:

  • 确保您的 SSL 证书未过期

  • 尝试指定密码:

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

于 2011-01-21T19:31:32.447 回答
128

对我来说,解决方案是default-ssl在 apache 2 中没有启用......只是把SSLEngine On

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

于 2010-03-30T19:01:20.247 回答
33

就我而言,我必须将 <VirtualHost *> 改回 <VirtualHost *:80> (这是 Ubuntu 上的默认设置)。否则,端口 443 未使用 SSL,而是将纯 HTML 发送回浏览器。

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

干杯!

于 2009-05-20T11:13:12.347 回答
19

就我而言,我忘记SSLEngine On在配置中进行设置。像这样,

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

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

于 2009-05-12T17:22:34.057 回答
11

如果您在设置新的 https 虚拟主机后遇到错误并且配置似乎正确,请记住也链接sites-enabled

于 2010-11-18T12:36:15.717 回答
8

老问题,但对我来说是谷歌的第一个结果,所以这就是我必须做的。

安装了 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,因此您的结果可能因外部访问而异,但这对我有用。

于 2012-04-16T17:12:03.007 回答
5

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

于 2008-09-23T06:12:06.597 回答
4

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

于 2011-07-14T22:00:32.487 回答
2

请看这个链接

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

于 2010-07-30T13:21:00.717 回答
1

在我的情况下,问题是 https 无法正确启动,因为 Listen 443 处于“IfDefine SSL”指令中,但我的 apache 没有以 -DSSL 选项开头。解决方法是更改​​我的 apachectl 脚本:

$HTTPD -k $ARGV

到:

$HTTPD -k $ARGV -DSSL

希望对某人有所帮助。

于 2008-12-01T14:36:53.230 回答
1

我的问题是由于 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

修复: netsh interface ipv4 set interface "Wireless Network Connection" mtu=1400

非VPN连接也可能是一个问题......

于 2009-05-21T14:07:20.273 回答
1

我有一个混乱的虚拟主机配置。请记住,对于端口 80,您需要一台不带 SSL 的虚拟主机,而对于端口 443,您需要一台不带 SSL 的虚拟主机。您不能在一个虚拟主机中同时拥有这两种主机,就像 webmin 生成的配置试图做的那样。

于 2009-06-30T14:34:36.940 回答
1

您也可以尝试修复主机文件。

将 vhost 文件保留在完全限定的域中,并将主机名添加到主机文件/etc/hosts (debian)

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

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

于 2012-07-16T13:01:07.417 回答
0

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

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

于 2009-09-09T09:18:43.040 回答
0

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

于 2012-09-26T17:01:21.483 回答