独自ドメイン seaoak.jp を独自サーバに移行している中で、 HSTS (HTTP Strict Transport Security) をいう技術を知りました。
- HTTP Strict Transport Security - Wikipedia
- HTTP Strict Transport Security - MDN
- HSTS (HTTP Strict Transport Security) の導入 - Qiita
- cybozu.com を真に常時 SSL にする話 - Cybozu Inside Out
- HTTP Strict Transport Security comes to Internet Explorer 11 on Windows 8.1 and Windows 7 - Microsoft Edge Dev Blog
- Preloading HSTS - Mozilla Security Blog
- HTTP Strict Transport Security - The Chromium Projects
- HSTS Preload List Submission
- HTTPSを使ってもCookieの改変は防げないことを実験で試してみた - 徳丸浩の日記
- RFC6797 HTTP Strict Transport Security (HSTS)
もともと全コンテンツを HTTPS 化するつもりだったので、 HSTS も導入したいところです。
せっかくなので、各ブラウザの HSTS Preload List に登録してもらいたい。そのためには、以下が必要っぽい:
max-age
が10886400
(18 weeks) 以上であること。推奨は63072000
(2 years) らしい。- chrome://net-internals/#hsts で自分のドメインを確認。
- https://hstspreload.org/ に登録。
最終的に、h2o.conf
に次の1行を追加すればよいと思われます:
header.set: "Strict-Transport-Security: max-age=63072000; includeSubDomains; preload"
なお、https://hstspreload.org/ に何回も繰り返し書かれているように、安易に preload 指定するのは避けたほうがよさそうです。いったん HSTS Preload List に掲載してしまうと、
HTTPS 化できないサブドメインがどうしても必要になった時に非常に困ります。
https://hstspreload.org/#removal
とりあえず、しばらくは様子見ですね。