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


71

我遵循了位于https:// https://help.ubuntu.com/6.06/ubuntu/serverguide/C/httpd.html#https-configuration上的https设置的官方文档

我不得不删除+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的新手,有什么问题的建议吗?

Answers:


70

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

例如

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

通过从网址中删除端口80,重定向将起作用。

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


我有一个案例,我的<VirtualHost *:443>被写为<VirtualHost *:443“>(显然,双引号是一个错字)
ywarnier

将我的yum.repos.d / filename.repo中对gpgkey的引用从https更改为http修复了我遇到的类似问题
dmohr,

31

我用了

a2ensite default-ssl

它就像一种魅力。

如果您想强制例如phpmyadmin使用SSL / https,那么如果此链接丢失,则会遇到此问题。


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 

11

如果服务器未正确配置SSL,这似乎是您从Firefox中看到的结果。Chrome,顺便说一句,只是给出了通用的“ 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 "-" "-"

8

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


3

就我而言,我从另一台计算机复制了ssl配置,并在中输入了错误的IP <VirtualHost wrong.ip.addr.here:443>。将IP更改为应有的IP,重新启动httpd并按预期通过SSL加载站点。


3

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

yum install mod_ssl

2

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

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

解决方案是更改httpshttp

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

4
这如何解决?您现在正在通过http而不是https进行访问!
若奥·特谢拉

可以说,它可以帮助api开发人员绕过问题并在网络团队调查实际问题时继续工作。
nanospeck

您不能将其称为解决方案,这是一种解决方法!而且您假设还有其他团队在照管服务器...为什么不假设错误并编辑答案而不是提供借口?
若奥·特谢拉

我做了同样的事情,更改httpshttp对我来说,原因是在LB上安装了SSL,并且我在服务器本身上执行了cURL命令。因此,删除s只是解决我的API的解决方案,而不是一些解决方法
Urvashi Soni

1

在我的情况下,我在ports.conf中有一个Ubuntu系统

NameVirtualHost *:80
NameVirtualHost 192.168.1.79
Listen 80

然后,在里面,我有

NameVirtualHost *:443
Listen 443

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


1
apache2 2.4.7说NameVirtualHost has no effect and will be removed in the next release /etc/apache2/ports.conf:xx
Karl Richter 2014年

1

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

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

我知道这与APACHE无关,但绝对是有该错误的人可以找到的页面。


0

就我而言,我在Virtualhost配置中不小心将SSL用于端口80,而不是443。



0

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


0

以下解决方案为我工作:

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

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

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

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

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


0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.