🔒
HSTS (Http Strict Transport Security)を設定
背景
HSTS の仕様についての説明は以下の記事に詳しく書かれています。
本記事では、HSTS を実際にサーバに設定して、HSTS preload の設定する手順を紹介します。
HSTSのpreloadに登録
HSTS の preload に登録するための設定は簡単です。
ドメイン自体の A レコードの URL に対して、HTTP ヘッダを 1 つ追加するだけです。
HSTS の preload に登録するためには要件が厳しいです。以下の 3 つを満たす必要があります。
- includeSubdomain も付加
- 有効期限は 1 年以上
- preload の指定
HSTS の preload のリストはグローバルで 1 つなのでリストの肥大化を防ぐためにもドメインレベルでしかも長期的に保持するような方針です。
nginx の場合は以下の 1 行を適切なブロック(server あたり)に足すだけです。
server {
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';
}
Apacheの場合は以下の1行を適切なディレクティブに足すだけです。
Header add Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
対応ドメインの登録する場合は以下のサイトでドメイン名を入力してSubmitします。
Submit後はすぐに登録されるわけではなく、保留されてから登録されるようなのでしばらく待ちます。
ホストごとにHSTSを設定する場合
上記の場合はHSTSのドメインレベルでの設定とHSTS preloadを登録しました。
各ホストごとにもHSTSは設定できるので必要に応じて設定すれば良いと思います。
例えば、以下のような感じで有効期限を指定するだけのようになります。(有効期限は1週間の例)
server {
add_header Strict-Transport-Security 'max-age=604800';
}
余談
以下の記事で紹介した Cloudflare の TLS termination を利用すれば Web の管理画面上からスイッチを ON にするだけで HSTS の設定が終わります。


Discussion