ssl_error_rx_record_too_long和Apache SSL [关闭]


242

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

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

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

我在问题上用谷歌搜索,主要来源似乎是SSL端口以HTTP讲话。我检查了服务器,但没有发生。我尝试了此处提到的解决方案,但客户表示无法解决问题。

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

解决方案

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

希望这可以帮助任何人找到这个问题,以便将来对其进行调试。


我认为这也可能是由于代理方面配置错误造成的。还有什么想法吗?
子图片

34
由于已关闭,但似乎是一个非常有价值的问题(此错误消息在Google中排名很高),也许应该将其移至ServerFault?这是一个已有6年历史的问题,因此当最初提出该问题时,也许无法使用SF ...
kdmurray 2014年

12
这是SSL_ERROR_RX_RECORD_TOO_LONG的第一个Web搜索结果。它有32个收藏夹,193个投票,多个被广泛投票的答案...,据一个比我们其他人都知道这个问题无权存在的人说,本主题已关闭。
弗拉基米尔·科纳(Fladimir Kornea),

2
我可以通过openssl s_client -connect my-domain.tld:443
azmeuk

2
@Subimage“解决方案证明客户的本地代理配置错误!” 请解释这意味着什么。您可能更具体;知道您有解决方案却感到沮丧,但您并未明确指出解决方案
ptrcao

Answers:


169

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
    
  • 确保您没有多个共享同一IP的SSL证书。请确保所有SSL证书都使用自己的专用IP。

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

那解决了我的问题。我很少在Google上看到一条错误消息并获得正确答案的第一击!:-)

除了上述内容外,还有其他一些导致此问题的解决方案:

  • 确保您的SSL证书未过期

  • 尝试指定密码:

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


5
只是为了添加到要检查的事物列表中,检查了所有这些项目之后,我不得不将我的<VirtualHost default:443> 交换为<VirtualHost fqdn:443>以使其最终工作。
JimP 2011年

2
我在whm / Cpanel服务器上遇到了这个问题。我刚刚重新安装了ssl即可解决此问题。
Mike D

15
_default_:443为我工作。不,我可以去睡觉!
Garfonzo '01年

要检查的另一件事是,默认情况下您可能具有SSL,但是如果您有一个新的virthost出现此问题,则即使端口已打开,您也可能尚未提供SSL配置。(又名,哎呀,我错过了一步。)
乔西亚

1
另外,检查并确保您没有其他VirtualHost conf文件使用不正确的设置监听端口443。一个错误的conf文件可以关闭所有SSL站点。
Nostalg.io 2015年

120

对我来说,解决方案是default-ssl在Apache 2中未启用...。SSLEngine On

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


4
我曾经用过,a2enmod ssl但是忘记了a2ensite default-ssl默认的vhost conf。谢谢!
m3nda

实际上,它们应该只default-ssl在Ubuntu中启用。
BadHorsie

32

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

您可以非常轻松地检查是否属于这种情况:只需连接到服务器http://www.example.com:443即可。如果看到纯HTML,则Apache根本不在端口443上使用SSL,这很可能是由于VirtualHost配置错误所致。

干杯!


1
localhost:443加载plian html,该怎么办?
niran

@niran我想这取决于您<VirtualHost>指令的操作系统默认值。尝试找出默认值并进行相应调整,并确保在该VirtualHost上启用了SSL。
Alexm '17

1
虚拟主机存在此问题,因为000-default.conf的未使用:443节没有SSLEngine。Apache日志显示了这一点,这使我走上了正轨:AH01916: Init: (myhost.example.com:443) You configured HTTP(80) on the standard HTTPS(443) port!
mivk

我的问题是我没有运行“ sudo a2ensite default-ssl.conf”。ssl conf根本不在可启用站点的目录中,而仅在可用站点中。
杰森


10

如果在设置新的https vhost后出现错误,并且配置似乎正确,请记住也要链接sites-enabled


2
听起来很愚蠢,但是却抓住了我
Alexei Tenitski

2
使用a2ensite而不是链接,这在大多数系统上都是正确的方法
AsTeR 2013年

1
另外,在apache2.conf(Ubuntu)上检查规则:IncludeOptional sites-enabled / *。conf。确保您的链接以“ .conf”结尾,或更改该规则以包括所有文件。
lepe

1
我使用正确的语法创建了站点配置,并将其链接到可用站点。问题是:我的配置名称没有以“ .conf”结尾,因此它从未加载,并且出现了以上错误。在我的情况下,配置文件已加载指令“ IncludeOptional sites-enabled / *。conf”,因此配置文件也必须命名为<Whatever> .conf。琐碎,但不会引起任何语法错误(毕竟永远不会加载),并且
令人讨厌

7

老问题了,但对我来说首先要问谷歌,所以这就是我要做的。

已安装Apache的Ubuntu 12.04 Desktop

所有的配置和mod_ssl都是在我安装Apache时安装的,但尚未在正确的位置进行链接。注意:以下所有路径都相对于/ 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,所以您的结果可能因外部访问而有所不同,但这对我有用。


9
命令“ a2ensite default-ssl”和“ a2enmodule ssl”简化了模块和站点符号链接的管理。
约西亚


4

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


我可以确认,这也是我的问题...错误的IP地址
StanleyD 2015年

3

请看这个链接

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


2

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

$HTTPD -k $ARGV

至:

$HTTPD -k $ARGV -DSSL

希望能帮助到别人。


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接口ipv4设置接口“无线网络连接” mtu = 1400

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


1

我搞砸了虚拟主机配置。请记住,您需要一个不带SSL的虚拟主机用于端口80,另一个需要带SSL的虚拟主机用于端口443。您不能在一个虚拟主机中同时拥有这两个主机,因为webmin生成的配置试图这样做。


0

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

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


一些代理将HTTP错误响应返回给意外的HTTPS请求(例如,如果您通过了错误的代理,或者代理配置错误)。这真的很难诊断,因为浏览器只会拒绝整个对话并抛出错误,而不是向您显示代理的错误消息。Wireshark可以完成工作。自己碰到这个。
Lightness Races in Orbit

0

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

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

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

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


0

对我来说,解决方案是我的ddclient不能正确地建立网关...

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.