HSTS の Preloadリスト

HSTS をサブドメインだけ無効化する方法


HSTS の Preloadリスト

サブドメインをhttp://で利用したいのに、https://に転送されるので調査して欲しいことで依頼を受け、確認したところ、 HSTS の設定を発見。色々と思うところがあったのでメモがてらまとめたいと思います。

HSTS とは?

HSTS(HTTP Strict Transport Security)は、ウェブサイトをHTTPS経由でアクセスするように強制するセキュリティメカニズムです。ブラウザ側のセキュリティ対策のようなもので、ブラウザが持つ HSTS リストに依存するため、ユーザー毎に挙動が違うという特徴があります。

HSTS の設定(.htaccess)

まず、.htaccess には以下の通り記述されていました。

# 修正前
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

「 includeSubDomains 」の部分がサブドメインを含むための記述です。(含まない場合は記述しない。)

# 修正後
Header set Strict-Transport-Security "max-age=31536000; preload"

「 preload 」を記述している場合、Preloadリスト に登録されているので、 .htasccess を修正するだけでは解消されません。リストからの削除要求を申請する必要があります。尚、Preloadリスト の削除は、ユーザーに届くまでに6〜12週間かかる場合もあるとのこと。仕様なのでどうしようも無いですが、、、。

HSTS の Preload 削除申請

削除申請を通すためには、「 preload 」の記述も一旦削除します。ただ、「 Header set Strict-Transport-Security 」の設定自体は無いと、エラーしてしまいます。

# 修正2
Header set Strict-Transport-Security "max-age=31536000"

サーバ側で強制的にキャッシュクリアを促すために、最終的にこちらを記述しました。

# 修正3
Header set Strict-Transport-Security "max-age=0; includeSubDomains;"

今回の対応で思ったこと

特定のサブドメインだけを除外出来ないか、「 mod_rewrite.c 」や 「 mod_headers.c 」、該当ページのmetaタグ調整など色々試しましたが、上手く行かず、、、。1つのサブドメインだけを対象外にするのは難しそうです。

また、反映に時間を要するので、サブドメインを含める場合は、かなりの注意が必要です。ご利用は計画的に。

自己紹介

松田 大と申しますm(_ _)m
インディーズでミュージシャンをやっていたのですがいつのまにか…

とある企業でショップのアルバイトスタッフから正社員、支店長を経てシステム部門に異動するという、開発担当としては変わった経緯を持っている方だと思います。

「Excel VBA」からスタートして、Yamaha RTX シリーズで VPN環境構築、Hyper-V環境構築、Windowsアプリ開発などを経験した後、「 WordPress 」に出会い、どっぷりハマっています。

現在勤めているETBS合同会社では、「 WordPress 」を活用したWEBサイト、業務用WEBアプリケーション開発を中心に、記事の執筆代行や掲載に必要な情報のリサーチ、映像のテロップ入れや切りはりなどの簡単な動画編集なども、まとめて行なっています。

現在、代表兼二児のパパ。子育てを通じて、こどもたちにもプログラミングの楽しさに触れてほしいと思うようになり、「 こどもICTかつしか教室 」を開講中。最近は童心に帰り、簡単なゲーム制作なんかも楽しんでいます(^_^)。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です