ssl_error_rx_record_too_long (FF/Django/StartSSL/Windows)

ssl_error_rx_record_too_long (FF/Django/StartSSL/Windows)

我一直在尝试让 SSL 工作,但遇到了问题。我尝试了这里和其他 Google 搜索结果中提供的几种解决方案,但都没有成功。

我获得了免费证书https://www.startssl.com/,我使用的是 Windows 服务器,客户端是 Firefox(代码 ssl_error_rx_record_too_long,其他浏览器提供的信息较少)。我尝试使用 Django,但请求从未到达服务器,所以我认为这无关紧要;控制台中没有显示任何内容。Apache 没有显示 httpd 的错误。

网站的 http(非 https)版本运行正常。在 https 请求中添加 :443 不会改变错误。

(我认为) httpd 配置的相关部分是:

Listen 80

LoadModule ssl_module modules/mod_ssl.so

DefaultType text/plain

<IfModule ssl_module>
    SSLRandomSeed startup builtin
    SSLRandomSeed connect builtin
</IfModule>

Listen 443

NameVirtualHost 85.223.64.8:80
Include "C:/Users/Mark/Web/Apache/httpd.conf.incl"

<VirtualHost _default_:443>
    # Include expanded
    LogLevel warn
    ErrorLog "path/secure.error.log"

    DocumentRoot "path/www"
    ServerName django.mverleg.nl
    ServerAdmin [email protected]
    ServerAlias *.django.mverleg.nl
    ProxyPreserveHost On
    ProxyRequests Off

    SSLEngine on

    SSLSessionCache 'shmcb:path/ssl_scache(512000)'
    SSLSessionCacheTimeout 300

    SSLProtocol all -SSLv2
    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM

    SSLCertificateFile "path/ssl.crt"
    SSLCertificateKeyFile "path/ssl.key"
    SSLCertificateChainFile "path/sub.class1.server.ca.pem"
    SSLCACertificateFile "path/ca.pem"

    <Location />
        UseCanonicalName Off
        ServerSignature Off
        AddDefaultCharset utf-8
        ProxyPass http://127.0.0.1:8081/
    </Location>
</VirtualHost>

运行 httpd 测试没有任何结果。重新启动时的错误日志:

The Apache2.2 service is restarting.
Starting the Apache2.2 service
The Apache2.2 service is running.
Init: Session Cache is not configured [hint: SSLSessionCache]
httpd.exe: Could not reliably determine the server's fully qualified domain name, using 85.223.64.8 for ServerName
[Wed Jan 04 01:39:58 2012] [notice] Digest: generating secret for digest authentication ...
[Wed Jan 04 01:39:58 2012] [notice] Digest: done

之后 htppd.exe不是正在运行(因此页面请求没有错误或响应)。

如果我注释掉VirtualHost部分,则上述内容的下一行是:

[Wed Jan 04 01:41:52 2012] [notice] Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.21 OpenSSL/0.9.8l configured -- resuming normal operations

任何帮助都将不胜感激。我以为一切都是根据我找到的各种指南设置的,所以我看不出哪里出了问题(我承认我不太了解 SSL 或 httpd 设置)。

更新版本已经实施了以下一些建议并显示错误。

难以置信,它又坏了……Http 站点可以正常工作,而 https 站点却说无法验证身份(我想这是向前迈出的一步)。然后我重启服务器,回到原来的样子(无法访问)。我恢复了更改(我想是的……),但它仍然坏了。这是否可能与缓存或存储密钥或类似的东西有关,因为当我添加新的 mod_ssl 时,它工作了一段时间?这些都没有任何意义,这让我抓狂……有什么想法吗?收到一个新错误:

[Wed Jan 04 03:30:45 2012] [crit] (OS 18)There are no more files.  : master_main: create child process failed. Exiting.

答案1

目前该 IP 地址的 443 端口上显然未启用 SSL(http://85.223.64.8:443/以纯 HTTP 方式工作)。

请仔细检查您是否已启用mod_ssl(通过LoadModule您的配置中的某处,取决于您正在使用的内容)。

如果您尚未指定NameVirtualHost指令,请尝试使用<VirtualHost _default_:443>而不是指定您的 IP 地址。

答案2

您的IfModule这句话看起来不对。我认为应该是:

<IfModule mod_ssl.c>
    SSLRandomSeed startup builtin
    SSLRandomSeed connect builtin
</IfModule>

不是:

<IfModule ssl_module>
    SSLRandomSeed startup builtin
    SSLRandomSeed connect builtin
</IfModule>

答案3

不确定,但ProxyPassReverse / http://127.0.0.1:8082/可能会有帮助(文档位于http://httpd.apache.org/docs/2.1/mod/mod_proxy.html#proxypassreverse)。

相关内容