我正在尝试在 Apache 中设置 SSL,但是当我转到 Firefox 中的服务器时收到以下错误消息:
连接到 sludge.home 时发生错误。
SSL 收到的记录超过了最大允许长度。
(错误代码:ssl_error_rx_record_too_long)
我的虚拟主机配置文件如下所示。
<IfDefine SSL>
<VirtualHost *:443>
ServerName sludge.home
SSLEngine on
SSLCertificateFile /usr/local/apache/cert/server.crt
SSLCertificateKeyFile /usr/local/apache/cert/server.pem
SSLProtocol -SSLv2
SSL CipherSuite HIGH:!ADH:!EXP:!MD5:!NULL
DocumentRoot "/usr/local/apache/htdocs"
ServerAdmin [email protected]
<Location />
AuthType Digest
AuthName "private area"
AuthDigestDomain /
AuthDigestProvider file
AuthUserFile /usr/local/apache/passwd/digest_pw
Require valid-user
</Location>
<Directory /usr/local/apache/htdocs/bugz>
AddHandler cgi-script .cgi
Options +Indexes +ExecCGI
DirectoryIndex index.cgi
AllowOverride Limit FileInfo Indexes
</Directory>
<Directory /usr/local/apache/htdocs/bugzilla>
AddHandler cgi-script .cgi
Options +Indexes +ExecCGI
DirectoryIndex index.cgi
AllowOverride Limit FileInfo Indexes
</Directory>
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "/usr/local/apache/htdocs">
Options Indexes FollowSymLinks
Allow Override None
Order allow,deny
Allow from all
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
</VirtualHost>
</IfDefine>
远程登录到该服务器显示服务器正在发送纯 HTML。此外,似乎 mod_ssl 未加载/工作,尽管我httpd -l
显示它已静态编译。
我已经用尽了我能想到的大部分方法。
答案1
该错误通常表示 HTTPS 设置不正确(它使用纯 HTTP 响应)。我假设您已定义Listen 443
某个地方,因为您可以连接它。
您的配置包含<IfDefine SSL>
。这意味着 HTTPd 必须使用 选项启动-DSSL
。请忽略<IfDefine SSL>
和相关</IfDefine>
部分,或使用 选项启动 Apache -DSSL
。
-D 参数
设置配置参数,该参数可与配置文件中的部分一起使用,以便在服务器启动和重新启动时有条件地跳过或处理命令。还可用于设置某些不太常见的启动参数,包括 -DNO_DETACH(防止父进程分叉)和 -DFOREGROUND(防止父进程调用 setsid() 等)。
答案2
此 serverfault 线程可能包含你的答案