Ubuntu 18.04でVagrantボックスをセットアップし、Apache 2.4.29をインストールしました。次のような新しいconfファイルを作成して有効にしました。
<VirtualHost *:80>
ServerName Django.dev
ServerAlias www.Django.dev
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>
何らかの理由で、Django.devを呼び出そうとすると、ApacheがHSTSヘッダーで応答します。
これがどこから来たのか私にはわかりません。 Apache2.confにも000-default.confにもそのようなヘッダーセットはなく、mod_sslも有効にしていません。
不思議なことに、IPを直接呼び出すと、すべてが期待どおりに機能します。 Django.devにpingを実行すると、まったく同じIPに解決されます。
HSTSを無効にする方法または場所を知っている人はいますか?私は途方に暮れていて、この問題を解決するために何時間も無駄にしています。
HSTSポリシーは、max-age
ディレクティブで指定された秒数の間、ブラウザーによってキャッシュされます( RFC 6797、6.1.1 )。 Webサーバー構成からヘッダーを削除しても、ポリシーはキャッシュから削除されません(プリロードリストも送信されている場合)ため、ポリシーを既にキャッシュしているすべてのブラウザーで307 Internal Redirect
sが発生し続けます。
RFC 6797、5. で指定されているとおり:
指定されたHSTSホストのみが、発行されたHSTSポリシーを更新または削除できます。これは、
Strict-Transport-Security
HTTP応答ヘッダーフィールドをUAに送信して、ポリシーの継続時間とサブドメインの適用可能性の新しい値を設定することで実現します。したがって、UAはHSTSホストに代わって「最新の」HSTSポリシー情報をキャッシュします。ゼロの期間を指定すると、UAはそのHSTSホストのHSTSポリシー(アサートされたincludeSubDomainsディレクティブを含む)を削除します。
したがって、HSTSポリシーを削除する唯一の方法は、期間がゼロのHSTSヘッダーを設定することです。また、ブラウザーはこのヘッダーを安全に表示する必要があります。 TLSエラーも警告もない接続( 2.2 )。
<VirtualHost *:443>
. . .
Header always set Strict-Transport-Security "max-age=0"
</VirtualHost>
不思議なことに、IPを直接呼び出すと、すべてが期待どおりに機能します。
これはまったく奇妙なことではありません。 付録A で説明されているように、
- HSTSホストはドメイン名によってのみ識別されます。すべての形式の明示的なIPアドレス識別は除外されます。これは簡略化のためであり、直接IPアドレス識別をPKIベースのセキュリティと組み合わせて使用する場合のさまざまな問題も認識されています。
.dev
でHSTSを無効にすることはできませんこれが文字通り .dev
domain の場合、HSTSを無効にすることはできません。
あなたのセキュリティは私たちの優先事項です。 .
dev
トップレベルドメインはHSTSプリロードリストに含まれているため、個々のHSTS登録や設定を行うことなく、.dev
Webサイトおよびページへのすべての接続でHTTPSが必要になります。セキュリティが組み込まれています。