Apache的SSL接收到超过最大允许长度
的记录运行的HTTPS请求时,我有一个错误:Apache的SSL接收到超过最大允许长度
SSL接收到超过最大允许长度的记录。
(错误代码:SSL_ERROR_RX_RECORD_TOO_LONG)
我在与Apache 2.x的Windows 7的盒子运行它,我的Apache设置虚拟主机是:
<VirtualHost *:80>
ServerName repocenter.com
ServerAlias www.repocenter.com
ServerAdmin [email protected]
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPreserveHost On
ProxyPass/http://192.168.210.1:9991/
ProxyPassReverse/http://192.168.210.1:9991/
SetEnvIf X-Url-Scheme https HTTPS=1
CustomLog logs/repocenter.com-access.log common
ErrorLog logs/repocenter.com-error.log
</VirtualHost>
<VirtualHost _default_:443>
ServerName repocenter.com:443
ServerAlias www.repocenter.com:443
ServerAdmin [email protected]
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPreserveHost On
ProxyPass/http://192.168.210.1:9991/
ProxyPassReverse/http://192.168.210.1:9991/
SetEnvIf X-Url-Scheme https HTTPS=1
</VirtualHost>
它是一个语法错误,以及如何我会纠正它吗?
这通常意味着您正在向HTTP服务发送HTTPS请求。该消息来自浏览器,抱怨它无法完成它期望的SSL握手。语法是正确的,否则HTTPD不会完成重新启动httpd服务。
-
文件
/conf/extra/httpd-ssl.conf
配置了正确的SSL信息,但未加载,因为httpd.conf未加载它。要解决此错误,请取消注释以下行(删除#)。然后重新启动Apache。
#Include conf/extra/httpd-ssl.conf
-
Apache未设置为在端口443上监听安全通信。为了解决这个问题,添加以下行
<VirtualHost>
块加载之前:Listen 443
如果您正在使用IPv6,您需要包括IP地址以及端口:
Listen 192.168.0.1:443
-
如果你是一个非标准的端口上运行的HTTPS你需要告诉Apache监听端口上的SSL连接:
Listen 192.168.0.1:8443 https
-
如果看到ABOV e在
<If DefineSSL>
块内部,您需要确保在启动Apache时定义了SSL。path/to/httpd -D SSL -k start path/to/apachectl startssl path/to/httpd startssl
如果你在Windows下运行的Apache以确保主机:通常SSL应该对自己的早期版本的Apache 2的定义,但如果没有被定义它,你可以试试下面的命令Windows服务器上的文件设置正确。它应该在
C:\Windows\System32\Drivers\etc\hosts
。有些人通过改变VirtualHost your.domain.com:443
到VirtualHost _default_:443
修正此错误,等等-
在
<VirtualHost>
块确保Apache是配置为使用SSL与SSLEngine
指令如下:<VirtualHost your.domain.com:443> SSLEngine On [rest of VirtualHost] </VirtualHost>