HSTS(HTTP Strict Transport Security)キャッシュの削除方法
Let's EncryptのおかげでHTTPS接続となったのは良いのですが、全てのWebサービスをHTTPS対応にはしていなかったので、ちょっとHTTP接続で確認…ということができなくなりました。
一度HTTPSで接続すると、それ以降はHTTPで接続しようとしてもブラウザ側で強制的にHTTPSで接続するようになってしまいます。これはこれで良いのですが、ではHTTPで接続するにはどうしたら…?
…というわけで少しHSTSの仕組みにはまってしまったのが今回の顛末。ブラウザのキャッシュを削除すれば
Firefoxの場合は、ツールバー「履歴」→「最近の履歴を消去」を選択し、「すべての履歴を消去」ダイアログの一番下にある「サイトの設定」にチェックを入れないとHSTSのキャッシュが削除できません。
この手順でキャッシュを削除することにより、HTTPで接続できるようになりました。ChromeやInternet Explorerは使っていないので分かりませんが、何かしらの方法でキャッシュを削除すれば大丈夫でしょう。
サーバー側で対処するなら、ssl.confに記述されている
『Header always set Strict-Transport-Security "max-age=15768000"』
の“max-age”部分を“max-age=0”にしてApacheを再起動するという方法もあるようです。
# vi /etc/httpd/conf.d/ssl.conf
:
(略)
#HSTS=常時HTTPSアクセスの有効化
#Header always set Strict-Transport-Security "max-age=15768000"
Header set Strict-Transport-Security "max-age=2592000"
#Header set Strict-Transport-Security "max-age=0"
:
(略)
#HSTS=常時HTTPSアクセスの有効化
#Header always set Strict-Transport-Security "max-age=15768000"
Header set Strict-Transport-Security "max-age=2592000"
#Header set Strict-Transport-Security "max-age=0"
今回は一旦alwaysの指定をOFFにして、max-ageの値を2592000(=86400sec * 30day)に変更しました。ちなみに30日間の意味は特にありません (^^;)