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”

今回は一旦alwaysの指定をOFFにして、max-ageの値を2592000(=86400sec * 30day)に変更しました。ちなみに30日間の意味は特にありません (^^;)

%d人のブロガーが「いいね」をつけました。