ssl_error_rx_record_too_long和Apache SSL
我有一个客户试图访问我的网站之一,他们不断得到这个错误> ssl_error_rx_record_too_long
他们在所有浏览器,所有平台上都得到这个错误。 我根本无法重现这个问题。
我的服务器和我自己都在美国,客户位于印度。
我search了这个问题,主要来源似乎是SSL端口是用HTTP发言的。 我检查了我的服务器,这没有发生。 我尝试了这里提到的解决scheme ,但客户已经表示它没有解决这个问题。
谁能告诉我如何解决这个问题,或者我怎么能重现这个?
解决scheme
原来客户有一个configuration错误的本地代理!
希望能够帮助任何人发现这个问题,试图在未来进行debugging。
Subimage提到的链接对我来说是正确的。 它build议更改虚拟主机标记,即从<VirtualHost myserver.example.com:443>
更改为<VirtualHost _default_:443>
错误代码:
ssl_error_rx_record_too_long
这通常意味着在您的服务器上执行SSL是不正确的。 错误通常是由服务器pipe理员需要调查的服务器端问题引起的。
以下是我们推荐尝试的一些事情。
确保服务器上的端口443已打开并启用。 这是https通信的标准端口。
如果SSL使用的是非标准端口,那么FireFox 3有时会出现这个错误。 确保SSL在端口443上运行。
如果使用Apache2,请检查您是否使用端口443进行SSL。 这可以通过如下设置ports.conf文件来完成
Listen 80 Listen 443 https
确保您没有多个共享相同IP的SSL证书。 请确保所有SSL证书都使用自己的专用IP。
如果使用Apache2,请检查您的vhostconfiguration。 有些用户报告说,将
<VirtualHost>
更改为_default_
解决了错误。确保您的SSL证书没有过期
尝试指定密码:
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4 + RSA:+ HIGH:+ MEDIUM:+ SSLv3
这解决了我的问题。 我很less遇到一个错误消息,并得到正确答案的第一击! 🙂
对我来说,解决scheme是在Apache 2中没有启用default-ssl
….只是把SSLEngine On
我必须执行a2ensite default-ssl
,一切正常。
在我的情况下,我不得不把<VirtualHost *>改回到<VirtualHost *:80>(这是Ubuntu的默认)。 否则,端口443不使用SSL,而是将纯HTML发送回浏览器。
你可以很容易地检查这是否是你的情况:只要连接到你的服务器http://www.example.com:443 。 如果您看到纯HTML,您的Apache根本不在端口443上使用SSL,最有可能是由于VirtualHost错误configuration。
干杯!
在我的情况下,我忘了在configuration中设置SSLEngine On
。 像这样,
<VirtualHost _default_:443> SSLEngine On ... </VirtualHost>
如果您在设置新的https虚拟主机后出现错误,并且configuration看起来是正确的,请记住也sites-enabled
链接。
老问题,但首先导致谷歌对我来说,所以这是我不得不做的。
安装了Apache的Ubuntu 12.04桌面
所有的configuration和mod_ssl在我安装Apache的时候都安装好了,但是没有正确的链接。 注意:下面的所有path都是相对于/ etc / apache2 /
mod_ssl
存储在./mods-available
,并且SSL站点configuration位于./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 ,所以你的结果可能会因外部访问而有所不同,但这对我有效。
询问用户在浏览器中使用的确切URL。 如果他们inputhttps://your.site:80 ,他们可能会收到ssl_error_rx_record_too_long错误。
在我的情况下,我在虚拟主机文件中有错误的IP地址。 听是443,节<VirtualHost 192.168.0.1:443>
但服务器没有192.168.0.1地址!
请看这个链接 。
我查看了所有的apache日志文件,直到find实际的错误(我将<VirtualHost>
从_default_
更改为了我的fqdn
)。 当我解决这个错误,一切工作正常。
在我的情况下,问题是https无法正确启动,因为听443是在“IfDefine SSL”derective,但我的Apache没有启动-DSSL选项。 修复是改变我的apachectl脚本:
$HTTPD -k $ARGV
至:
$HTTPD -k $ARGV -DSSL
希望能帮助别人。
我的问题是由于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设置接口“无线networking连接”mtu = 1400
这也可能是一个非VPN连接的问题…
我有一个混乱的虚拟主机configuration。 请记住,您需要一个不使用SSL的虚拟主机作为端口80,另一个使用SSL作为端口443.您不能同时在一个虚拟主机中使用webmin生成的configuration。
我在某些浏览器中遇到了同样的问题,无法访问我的SSL站点。 我发现我必须给fireFox正确的代理 (FireFox直接访问互联网)。
根据lanconfiguration(隧道,过滤,代理redirect),FireFox的“直接访问互联网”模式会引发此错误。
您也可以尝试修复主机文件。
保持虚拟主机文件与完全合格的域名,并将主机名添加到主机文件/ etc / hosts (debian)
ip.ip.ip.ip name name.domain.com
重新启动apache2后,错误应该消失。
对我来说,解决的办法是,我的ddclient没有正确configuration