我有一位客户试图访问我的某个网站,他们不断收到此错误> SSL_ERROR_RX_RECORD_TOO_LONG
他们在所有浏览器,所有平台上都收到此错误。我根本无法重现这个问题。
我的服务器和我本人位于美国,客户位于印度。
我用Google搜索了问题,主要来源似乎是SSL端口在HTTP中发言。我检查了我的服务器,但这没有发生。我试过了the solution mentioned here,但客户说它没有解决问题。
任何人都可以告诉我如何解决这个问题,或者我如何重现这个???
解决方案
原来客户配置错误的本地代理!
希望能帮助任何人发现这个问题,试图在将来调试它。
答案 0 :(得分:153)
link mentioned by 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_
可解决错误。
这解决了我的问题。很少有我谷歌一个错误消息,并获得正确答案的第一个! : - )
除上述之外,这些是其他人发现导致此问题的其他一些解决方案:
确保您的SSL证书未过期
尝试指定密码:
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM:+SSLv3
答案 1 :(得分:108)
我的解决方案是apache 2中没有启用default-ssl
....只是放SSLEngine On
我必须执行a2ensite default-ssl
,一切正常。
答案 2 :(得分:32)
在我的情况下,我不得不更改&lt; VirtualHost *&gt;回到&lt; VirtualHost *:80&gt; (这是Ubuntu的默认设置)。否则,端口443没有使用SSL并且正在将纯HTML发送回浏览器。
您可以非常轻松地检查这是否属于您的情况:只需连接到您的服务器http://www.example.com:443即可。如果你看到纯HTML,你的Apache根本就没有在端口443上使用SSL,很可能是由于VirtualHost配置错误。
干杯!
答案 3 :(得分:19)
在我的情况下,我忘了在配置中设置SSLEngine On
。像这样,
<VirtualHost _default_:443>
SSLEngine On
...
</VirtualHost>
答案 4 :(得分:8)
如果您在设置新的https vhost后出现错误并且配置似乎正确,请记住在sites-enabled
中链接。
答案 5 :(得分:7)
老问题,但首先是Google的结果,所以这就是我必须做的事情。
安装了Apache的Ubuntu 12.04桌面
我安装Apache时安装了所有配置和mod_ssl,但它还没有在正确的位置链接。注意:以下所有路径均相对于 / etc / apache2 /
mod_ssl
存储在./mods-available
中,SSL网站配置位于./sites-available
,您只需将这些链接指向./mods-enabled
和{{1}中的正确位置即可}}
./sites-enabled
重启Apache,它应该可以工作。我试图访问https://localhost,因此您的结果可能因外部访问而异,但这对我有用。
答案 6 :(得分:4)
询问用户他们在浏览器中使用的确切网址。如果他们输入https://your.site:80,他们可能会收到ssl_error_rx_record_too_long错误。
答案 7 :(得分:4)
就我而言,虚拟主机文件中的IP地址错误。监听是443,节是<VirtualHost 192.168.0.1:443>
但是服务器没有192.168.0.1地址!
答案 8 :(得分:3)
请参阅this link。
我查看了所有的apache日志文件,直到找到实际错误(我已将<VirtualHost>
从_default_
更改为fqdn
)。当我修复此错误时,一切正常。
答案 9 :(得分:2)
在我的情况下,问题是https无法正确启动,因为Listen 443处于“IfDefine SSL”derective中,但我的apache并没有以-DSSL选项启动。解决方法是更改我的apachectl脚本:
$HTTPD -k $ARGV
为:
$HTTPD -k $ARGV -DSSL
希望能帮助某人。
答案 10 :(得分: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“无线网络连接”mtu = 1400
这也可能是非VPN连接的问题......
答案 11 :(得分:1)
我搞乱了虚拟主机配置。请记住,您需要一个没有SSL的虚拟主机用于端口80,另一个虚拟主机使用SSL用于端口443.您不能在一个虚拟主机中同时使用这两个虚拟主机,因为webmin生成的配置尝试这样做。
答案 12 :(得分:0)
我在某些浏览器中遇到同样的问题,无法访问我的SSL网站。 我发现我必须向fireFox提供正确的代理(FireFox直接访问互联网)。
根据局域网配置(隧道,过滤,代理重定向),FireFox的“直接访问互联网”模式会引发此错误。
答案 13 :(得分:0)
您也可以尝试修复hosts文件。
将vhost文件保留为完全限定的域,并在hosts文件中添加主机名 / etc / hosts (debian)
ip.ip.ip.ip name name.domain.com
重新启动apache2后,错误应该消失。
答案 14 :(得分:0)
对我而言,解决方案是我的ddclient没有正确地完成任务......