【问题标题】:SSL received a record that exceeded the maximum permissible length. (Error code: ssl_error_rx_record_too_long)SSL 收到超过最大允许长度的记录。 (错误代码:ssl_error_rx_record_too_long)
【发布时间】:2011-02-02 01:58:15
【问题描述】:

我关注了位于此处的 https 设置官方文档:https://help.ubuntu.com/6.06/ubuntu/serverguide/C/httpd.html#https-configuration

我不得不从

中删除+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 新手,有什么建议可以解决问题吗?

【问题讨论】:

    标签: apache ssl


    【解决方案1】:

    我刚刚遇到过这个问题。对我来说,当一些错误的代码试图重定向到端口 80 上的 HTTPS 时,它就会出现。

    例如

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

    通过从 url 中删除端口 80,重定向工作。

    HTTPS 默认通过端口 443 运行。

    【讨论】:

    • 我有一个例子,我的 写成 (显然双引号是一个错字)
    • 将我的 yum.repos.d/filename.repo 中对 gpgkey 的引用从 https 更改为 http 解决了我遇到的类似问题
    【解决方案2】:

    我有同样的错误。我忘记创建从 sites-enabled/000-default-ssl 到 sites-available/default-ssl 文件的链接。

    > ln -s /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/000-default-ssl 
    

    【讨论】:

      【解决方案3】:

      我用过

      a2ensite default-ssl
      

      它就像一个魅力。

      如果你想强制,例如phpmyadmin 使用 SSL/https 如果缺少此链接,您将遇到此问题。

      【讨论】:

        【解决方案4】:

        在我的例子中,我不小心在端口 80 的 Virtualhost 配置中使用了 SSL,而不是 443。

        【讨论】:

          【解决方案5】:

          在我的例子中,我在 ports.conf 中有一个 Ubuntu 系统

          NameVirtualHost *:80
          NameVirtualHost 192.168.1.79
          Listen 80
          

          然后,在里面,我有

          NameVirtualHost *:443
          Listen 443
          

          我所要做的就是删除 NameVirtualHost 192.168.1.79 这一行。重启apache,问题解决。

          【讨论】:

          • apache2 2.4.7 说NameVirtualHost has no effect and will be removed in the next release /etc/apache2/ports.conf:xx
          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

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

            看到这些帖子勾起了我的记忆。

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

            【讨论】:

              【解决方案8】:

              在我的例子中,我从另一台机器上复制了一个 ssl 配置,并且在 <VirtualHost wrong.ip.addr.here:443> 中有错误的 IP。将 IP 更改为应有的 IP,重新启动 httpd 并按预期通过 SSL 加载网站。

              【讨论】:

                【解决方案9】:

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

                yum install mod_ssl
                

                【讨论】:

                  【解决方案10】:

                  这似乎是您在服务器未正确配置 SSL 时从 Firefox 看到的结果。顺便说一句,Chrome 刚刚给出了一个通用的“ssl failed”代码。

                  当服务器期待 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 "-" "-"
                  

                  【讨论】:

                    【解决方案11】:

                    在 webmin 中启用 TLSv1.2 后,我遇到了同样的错误。在我意外启用 TLSv1.2 以为它是 SSLv2 之后,我无法像以前那样从 https://myipaddress:10000 登录。我找到了这个链接http://smallbusiness.chron.com/disable-ssl-webmin-miniserv-60053.html,它对我有帮助,因为我能够访问 webmin 配置文件并且能够使用 TLSv1.2

                    【讨论】:

                      【解决方案12】:

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

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

                      解决方案是将https 更改为http

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

                      【讨论】:

                      • 如何解决?您现在通过 http 而不是 https 访问!
                      • 可以说,它可以帮助 api 开发人员绕过问题并在网络团队调查实际问题时继续工作。
                      • 您不能将此称为解决方案,这将是一种解决方法!而且您假设有其他团队负责服务器...为什么不假设错误并编辑您的答案而不是找借口?
                      • 我做了同样的事情,将https 更改为http 对我来说原因是SSL 安装在LB 上,而我是在服务器本身上执行cURL 命令。因此,删除 s 是测试我的 API 的解决方案,而不是一些解决方法
                      • 解决方案可能是使用没有 80 端口号的 curl https://example.com/some/page
                      【解决方案13】:

                      如果您是从旧版本的 apache2 升级,请确保您的 apache 站点可用的 conf 文件以 .conf 结尾并使用 a2ensite 启用

                      【讨论】:

                        【解决方案14】:

                        以下解决方案对我有用:

                        在地址栏中输入 About:Config 并按 Enter。

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

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

                        value字段为true,双击设为false。

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

                        【讨论】:

                          【解决方案15】:

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

                          【讨论】:

                            猜你喜欢
                            • 2012-04-07
                            • 2012-02-01
                            • 2013-09-09
                            • 2012-12-20
                            • 1970-01-01
                            • 1970-01-01
                            • 2016-07-04
                            • 2021-02-19
                            • 2016-04-13
                            相关资源
                            最近更新 更多