
サーバーを 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 はオンです - 昨日はすべて正常に動作していましたが、Jessie ではなく Wheezy でした...
* アップデート * 改めて考えてみると、:443 への接続は /var/log/apache2-ssl/access.log ではなく /var/log/apache2/access.log に記録されていることがわかりました。しかし、なぜでしょうか?
答え1
解決策を見つけるのは非常に困難でした...偶然だけがそれを見つけるのを助けました。
Apache2.4 には.conf
拡張機能が必要です。
2 つのファイルがありました:/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>
古い設定はコメント (#) です。これで大丈夫ですか?