Cloudflare

CloudflareでのHSTS preloadの設定方法

World Administrator
2023年11月12日
3 分で読めます
Blog SettingsTech For You
Photo by Christina @ wocintechchat.com / Unsplash

Cloudflareを利用している方はHSTSの設定を簡単に済ませることができます。

HSTS Preloadまで一気に済ませてしまいましょう。

HSTSとは

HSTSはウェブサイトとのHTTP接続をブラウザーに対して、HTTPSにアップグレードするように指示する規格です。

MDN|Strict-Transport-Security

Strict-Transport-Security - HTTP | MDN
HTTP の Strict-Transport-Security レスポンスヘッダー (しばしば HSTS と略されます) は、ウェブサイトがブラウザーに HTTP の代わりに HTTPS を用いて通信を行うよう指示するためのものです。

HSTS Preloadとは

HSTSは「次回以降はHTTPS接続にしてね」と指示するレスポンスヘッダーであるため、初回接続時はHTTP接続になってしまいます。

初めてそのウェブサイトに接続する際はChromeなどの主要ブラウザでは警告が表示されてしまいます。

二度目以降は警告が出ないとわかってサイトに訪問する人は少数でしょうから、初回からHTTPS接続を強制することはこうしたWebサイト運営者の観点からは必要だと理解してもらえると思います。

また、訪問者の視点ではHTTPSによって保護された通信をすることで、安心したウェブブラウジングを行うことができます。

しかし、HSTSはブラウザーによる機能であるため、ブラウザーに登録する必要があります。

Googleが主導しているプロジェクトにより、HSTS Preloadのリストに登録することができますが、ブラウザーに記録される仕様上、一度登録したら解除が非常に面倒で反映まで半年以上の期間がかかる場合もあるため、セキュリティ設定を面倒だと思うような怠け者には向いていません。

私がブログを書ければいいというだけでなく、訪問者にも安全にブラウジングを行ってほしいという人はぜひHSTS Preloadの設定も済ませましょう。

HSTSの設定について|Cloudflare

DNSとしてCloudflareを利用している場合、HSTSを設定することは非常に簡単です。

以下の手順に沿ってHSTSを設定してください。

Cloudflareのダッシュボードに移動する。

  1. Cloudflareのダッシュボード に移動してください。
  2. 左にあるタブペインから「Webサイト」を選択し(既定で選択されていると思います)、あなたがブログのホストに利用しているドメインを選択してください。
  3. 左にあるタブペインから「SSL/TLS」を選択し、「SSL/TLS ▼」となっている▼ボタンを選択してください。
  4. その中から、「エッジ証明書」を選択してください。
  5. 「エッジ証明書」画面の下に行くと、「HTTP Strict Transport Security (HSTS)」という設定項目が見つかります。
  6. 「HSTS設定を変更する」ボタンをクリックし、表示されるガイドに従い設定を済ませましょう。
  7. 「確認」画面が出てきますが、適切に設定すれば何も問題は起こらないので、注意事項を理解したら「私は理解しています」のチェックボックスをオンにし、「次へ」進みましょう。
  8. すべての設定項目をオン(緑のチェックマーク)にしましょう。
  9. 注意点として、HSTS Preloadを利用する際は「Max Age ヘッダー (max-age)」を「12月」に設定しないといけません。

以上でHSTSの設定は終了です。

あなたのウェブサイトに訪問する際は、2度目以降はHTTPS接続が強制されるため、よりセキュアな環境になりました。

初回接続からHTTPS接続を強制するためのHSTS Preloadを設定する方は、以下の設定も済ませましょう。

HSTS Preloadを設定する

まず、HSTS Preloadは自動的に登録されるものではないことを理解しましょう。

申請をし、自動化された許可が行われると、次回のGoogle Chromeのアップデートによって適応されるというシステムです。

では、HSTS Preloadの申請と下準備を行いましょう。

  1. ネイキッドドメインに対するHTTP接続をHTTPSにリダイレクトする。
    1. Cloudflareを利用している場合、「ルール」で設定を行うことができます。
    2. 「リダイレクトルール」に移動したら、「ルールを作成」ボタンをクリックしてください。
    3. 「ルール名(必須)」はあなたがそのルールを管理する際にわかりやすいように、自由な名前をつけることができます。参考までに、私はHSTSに利用しているということで「HSTS」という名前をつけましたが、「to HTTPS」などの名前でもいいと思います。
    4. 以下の画像のように設定をしてください。「受信リクエストが一致する場合...」にはHTTPのあなたのルートドメインを入力し、「実行内容...」にはHTTPSのルートドメインを入力してください。
      1. 注意として、DNSでの名前解決はルートドメインをwwwに転送するようセットアップしてください。
      2. すなわち、A/AAAAレコードにあなたのブログIPアドレスをサブドメインwwwを利用して名前解決するように設定してください。
      3. そしてCloudflareではCNAMEのフラット化という機能があるので、利用させていただきます(とはいっても設定することは何もないです)。
      4. CNAMEに@からwwwサブドメインに対するリダイレクトを設定します。
      5. 以上です

HSTS Preload List Submission からあなたのドメインを登録します。

HSTS Preload List Submission

Chromeのアップデート間隔は4週間ですので、気長に待ちましょう。