SSL收到的记录超过了允许的最大长度。 (错误代码:ssl_error_rx_record_too_long)

时间:2010-03-29 14:38:05

标签: apache ssl

我按照位于此处的https设置上的官方文档:https://help.ubuntu.com/6.06/ubuntu/serverguide/C/httpd.html#https-configuration

我必须从

中删除+CompatEnvVars
SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire

因为它说这是一个无效的命令或什么的。因此,删除它并遵循钉子的指示它会得到错误:

SSL received a record that exceeded the maximum permissible length.

(Error code: ssl_error_rx_record_too_long)

我是SSL的新手,对于出了什么问题的任何建议?

15 个答案:

答案 0 :(得分:59)

我刚刚遇到过这个问题。对我来说,当一些错误的代码试图在端口80上重定向到HTTPS时就出现了。

e.g。

  

https://example.com:80/some/page

通过从网址中删除端口80,重定向可以正常工作。

默认情况下,HTTPS通过端口443运行。

答案 1 :(得分:29)

我用过

a2ensite default-ssl

它就像一个魅力。

如果你想强迫,例如phpmyadmin使用SSL / https如果缺少此链接,您将遇到此问题。

答案 2 :(得分:25)

我有同样的错误。我忘了创建从sites-enabled / 000-default-ssl到sites-available / default-ssl文件的链接。

> ln -s /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/000-default-ssl 

答案 3 :(得分:8)

这似乎是您在没有为SSL正确配置服务器时从Firefox看到的结果。 Chrome,BTW,只是给出了一个通用的“ssl失败”代码。

当服务器期待HTTP请求时,浏览器会发送SSL握手。服务器响应400代码和错误消息,该消息比浏览器期望的握手消息大得多。因此FF消息。

正如我们从响应中可以看到的那样,有许多事情可以破坏SSL配置但不会停止服务器启动或在error.log中提供任何提示。

我所做的是系统地检查所有答案,直到我最终找到正确答案,直到底部。

以下是访问日志中的内容:

rfulton.actrix.co.nz:80 192.168.1.3 - - [09/Oct/2016:13:39:32 +1300] "\x16\x03\x01" 400 0 "-" "-"
rfulton.actrix.co.nz:80 192.168.1.3 - - [09/Oct/2016:13:39:46 +1300] "\x16\x03\x01" 400 0 "-" "-"
rfulton.actrix.co.nz:80 192.168.1.3 - - [09/Oct/2016:13:49:13 +1300] "\x16\x03\x01" 400 0 "-" "-"

答案 4 :(得分:6)

当您启用SSL模块(即您已运行例如a2enmod ssl)但尚未启用任何SSL站点条目(即您尚未运行例如a2ensite default-ssl)时,也会发生此错误。

答案 5 :(得分:2)

在我的情况下,我从另一台机器复制了一个ssl配置,并在<VirtualHost wrong.ip.addr.here:443>中使用了错误的IP。将IP更改为应该的状态,重新启动httpd,并按预期通过SSL加载网站。

答案 6 :(得分:2)

就我而言,我需要先安装mod_ssl

yum install mod_ssl

答案 7 :(得分:1)

就我而言,一个Ubuntu系统,在ports.conf中我有

NameVirtualHost *:80
NameVirtualHost 192.168.1.79
Listen 80

然后,在里面,我有

NameVirtualHost *:443
Listen 443

我所要做的就是删除NameVirtualHost 192.168.1.79这一行。重启了apache并解决了问题。

答案 8 :(得分:1)

我的案例与Greg B有关 - 当启用SSL时,Visual Studio会创建两个站点 - 一个用于安全,一个用于正常的http请求。但是,Visual Studio会随机选择两个端口,并且根据启动调试器的方式,您可能会指向请求类型的错误页面。特别是如果您编辑网址但不要更改端口号。

看到这些帖子让我记忆犹新。

我知道这不是与APACHE相关的,但它绝对是一个有错误的人会找到的页面..

答案 9 :(得分:1)

以下解决方案对我有用:

在地址栏中键入About:Config,然后按Enter。

将显示“此保修可能会使您的保修无效!”警告,单击“我会小心,我承诺”按钮。

在搜索框中输入security.ssl.enable_ocsp_stapling。

值字段为true,请双击以使其为false。

现在尝试再次连接您的网站。

答案 10 :(得分:1)

终于找出问题所在:
端口 443 正在侦听 HTTP 而不是 HTTPS,更改为 HTTPS 解决了我的问题。

答案 11 :(得分:0)

在我的情况下,我意外地在Virtualhost配置中使用了端口80的SSL,而不是443。

答案 12 :(得分:0)

在webmin中启用TLSv1.2后,我遇到了同样的错误。在我意外启用TLSv1.2后认为它是SSLv2之后,我无法像之前那样从https://myipaddress:10000登录。我找到了这个链接http://smallbusiness.chron.com/disable-ssl-webmin-miniserv-60053.html,它帮助了我,因为我能够访问webmin配置文件而且我能够使用TLSv1.2

答案 13 :(得分:0)

当我尝试使用curl访问URL时出现此错误:

curl 'https://example.com:80/some/page'

解决方案是将https更改为http

curl 'http://example.com:80/some/page'

答案 14 :(得分:0)

如果要从旧版本的apache2升级,请确保您的apache站点可用的conf文件以.conf结尾,并已通过a2ensite启用