我将服务器从 Wheezy 升级到 Jessie,Apache 2.4 停止工作......
特别是在端口 443 上没有 ssl ....
telnet myhost 443
GET https://myhost
<html><meta http-equiv='Content-Type' content='text/html; charset=utf-8'/><body>Something in /var/www/html/index.html</body></html>>Connection closed by foreign host.
它应该是:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Reason: You're speaking plain HTTP to an SSL-enabled server port.<br />
Instead use the HTTPS scheme to access this URL, please.<br />
</p>
</body></html>
Connection closed by foreign host.
SSLEngine 已开启 - 昨天一切正常,但那是 Wheezy,而不是 Jessie......
* 更新 * 新鲜的想法 - 我发现,与 :443 的连接记录到 /var/log/apache2/access.log 而不是 /var/log/apache2-ssl/access.log 但为什么呢?
答案1
解决方案很难找到......只有巧合才能帮助我找到它。
Apache2.4 需要.conf
扩展....
我有两个文件:/etc/apache2/sites-available/http
和/etc/apache2/sites-available/https
,当然还有相同的符号链接/etc/apache2/sites-enabled/
。
尝试找出我采取的解决方案default-ssl.conf
并将其设为符号链接,它成功了!因此,我复制了每一行以查找差异所在,但一无所获。我将 重命名为https
,https.conf
并创建了一个符号链接,它也能正常工作!!!
最大的错误是我自己创建符号链接,没有使用a2ensite
- 这将导致该http
站点不存在 - 直到将其重命名为http.conf
。
6个小时的搜索一无所获......唉......但也许这会对别人有所帮助..
答案2
您读过 Apache 2.4 的发行说明吗?
“值得注意的是,访问控制指令已经发生了很大变化,需要手动迁移到新指令。”
答案3
我在使用授权配置时遇到了同样的问题。发现和更改会很延迟。
<Directory /var/www/webalizer>
Options Indexes FollowSymlinks MultiViews
# AllowOverride all
# Order allow,deny
Require all granted
</Directory>
旧设置是注释(#)。它对你有用吗?