HSTSヘッダーを返すようにApacheを設定しました。 Google Chromeから https://lab20.example.com に接続し、開発者ツールで実行すると、次の応答ヘッダーが表示されます。Strict-Transport-Security:max-age=63072000; includeSubdomains;
しかし、それは機能しません。 http://lab20.example.com にアクセスしようとすると、Chromeで許可されます。
Chromeから実行する場合も:chrome://net-internals/#hsts Query domain "lab20.example.com"
「応答が見つかりません」を受け取ります。
なぜこれが起こるのか誰かが説明できますか?
同様の問題が発生している他の人にとっては、ブラウザがまだHTTPS経由でサイトにアクセスしていないことが原因である可能性があります。 HTTPS経由でアクセスしてから、HTTP経由でもう一度アクセスしてみてください。 HSTSが正しく実装されている場合、その最後のリクエストは失敗するはずです。 MDNはそれをうまく説明しています :
注:
Strict-Transport-Security
ヘッダーはブラウザによって無視されますHTTP
を使用してサイトにアクセスしたとき。これは、攻撃者がHTTP
接続を傍受し、ヘッダーを挿入または削除する可能性があるためです。証明書エラーなしでHTTPS
を介してサイトにアクセスすると、ブラウザはサイトがHTTPS
対応であることを認識し、Strict-Transport-Security
ヘッダーを尊重します。
Apacheがexample.comとwww.example.comだけでなく、すべてのサブドメインでSSLを強制するようにサイト構成を構成しましたか?
また、chrome:// net-internals /#hstsは、 https://hstspreload.appspot.com/ を介してプリロードおよび追加されたサイトからの正しいクエリのみを表示すると思います。これは、chrome:// net-internals /#hstsが機能しない理由を説明しています。
これは、PCでNO-SSLが有効または強制されていることが原因である可能性があります。 NO-SSLを無効にできない場合は、PCがNO-SSLの無効化をサポートしていない可能性があります。