概要
若手の構築課題を作っている最中に、 HTTP Strict Transport Security (HSTS) の強制適用により http://{ドメイン} が Web ブラウザで表示出来ない( https にリダイレクトしてしまう )問題に出会いました
最終的には https://{ドメイン} にするけど、その過程でどうしても http://{ドメイン} を Web ブラウザで表示したかったので自分なりに回避策を調べました
HSTS とは
RFC 6797 で定義される、Web サイトが Web ブラウザに HTTPS でのアクセスを指示することで中間者攻撃を防止するための技術で、要は HTTP でアクセスしようとしても Web ブラウザ側で強制的に HTTPS に変換してしまうものです
参考: JPRS用語辞典|HSTS(エイチエスティーエス、Hypertext Strict Transport Security)
現在の主要な Web ブラウザ (Chrome, Firefox, Opera, Safari, IE 11 and Edge) は対応しています
参考: HSTS Preload List Submission
HSTS の回避方法
Web ブラウザの設定で回避する設定をすることが出来ます
例えば、 Google Chrome の場合は
chrome://net-internals/#hsts
にアクセスDelete domain security policies
に HSTS を除外したいドメインを入れるDelete
を実行
で、出来るとのことです
参考: httpで表示したいサイトがhttpsにリダイレクトされ、サイトが表示できない - Google Chrome Community
ただし、今回はこれでもダメな場合の話です\(^o^)/
HSTS は全てのドメインに適用されているわけでは無い
そもそもの話ですが、 HSTS はすべてのドメインで適用になっている訳ではないので、まだ HSTS が強制適用されていないドメインを使えば HSTS を回避出来ます
つまり、 hogehoge.jp とか fizzbuzz.org などのドメインならまだドメインを HTTP で運用可能です
fizzbuzz.org などは、お名前ドットコムで1年間1000円くらいから購入出来るので比較的にリーズナブルに運用が可能です
ただし、これは 2023/11 時点の話であり、いつ上記のドメインの HSTS が強制適用になるかは不明です
HSTS が強制適用されるか確認できるサイト
以下のサイトで自分で調べることが出来ます
HSTS が強制適用される場合
https://hstspreload.org/?domain=app
HSTS が強制適用されない場合
https://hstspreload.org/?domain=jp
まとめ
HSTS 自体はセキュリティを高めるための必須な仕様なので、それに準じた構築を心がけましょう :)
とはいえ、例外的に HTTP を使いたい時はあるので、HSTS 回避はあくまで一時的なものとしたほうがいいと思います ;)