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> 

http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslengine

如果您在设置新的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