常時SSL化した後にやっておきたい

最近案件で常時SSL化の設定をすることが多くなりました。常時SSLをかけていないとGoogleのインデックスから除外されるなんてケースもありました(直接の原因かどうかは不明でしたが……ほかにも問題があったので)。そこでHypertext Strict Transport Security(HSTS)を設定してブラウザにhttpsでのアクセスを強制させる設定を行います。

Hypertext Strict Transport Security(HSTS)の構成要素

Strict-Transport-Securityヘッダーを構成するフラグは「max-age」「includeSubDomains」「preload」です。

max-age
ブラウザがHSTSポリシーをキャッシュして適用する時間を秒単位で指定します。
includeSubDomains
このフラグが指定された場合は、ブラウザが現在のドメイン以下のすべてのサブドメインにもこのポリシーを適用する必要があることを示します。
preload
HSTS Preloadリストに含まれることを希望する場合、このフラグを指定します。

Apacheでの設定

.htaccessに以下のように設定します。

Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

設定した.htaccessをアップロードしてGoogleChromeのデベロッパーツールなどでヘッダー情報を見てみると以下のように表示されます。

Hypertext Strict Transport Security(HSTS)

できた!\(^o^)/

参考サイト

Strict-Transport-Security – HTTP | MDN
https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Strict-Transport-Security