HTTPS接続を初回から強制する仕組みをwww階層にあるブログに適用する方法です。
用語整理
- Apex ドメイン: あなたのドメイン
example.com
のことです。 - サブドメイン: あなたのドメインのApexドメイン以下の階層のことです。ここでは
www.example.com
を指します。 - リダイレクト: 特定のURLをほかのURLに転送することです。
- 常時SSL/TLS化: 常にHTTPS接続にするということです。Cloudflareでは
Always use HTTPS
という機能で有効化できます。HSTSは二度目以降の接続に対してHTTPS接続を強制する仕組みです。HSTS Preloadはブラウザーにリストを埋め込むことでHSTSを一度目から強制する仕組みです。 - DNS: 一言でまとめると、URLをIPアドレスに変換するシステムです。今回ではCloudflareを利用しているとします。
- ページルール: Cloudflareのリダイレクト機能の一つです。Cloudflareでは要件に応じて、様々なリダイレクトルールを設定することができます。今回はページルールを利用して設定していきます。
手順
- ブログの名前解決に利用するDNSにCloudflareを利用します。
- ブログのサーバーがIPv4を利用している人は、Aレコードの
Name
にwww
を、IPv4 Address
にあなたのブログのIPv4アドレスを入力してください。 - ブログのサーバーがIPv6をサポートしている人は、AAAAレコードの
Name
にwww
を、IPv6 Address
にあなたのブログのIPv6アドレスを入力してください。
- ブログのサーバーがIPv4を利用している人は、Aレコードの
- HTTPS接続を強制します。つまりあなたのドメインに対するHTTP接続は強制的にHTTPS接続のものにリダイレクトされます。
SSL/TLS
からEdge Certification
に移動します。Always Use HTTPS
をオンにします。Automatic HTTPS Rewrites
をオンにします。
- HSTSを設定します。
- 同じく
SSL/TLS
のEdge Certification
から設定をします。 HTTP Strict Transport Security (HSTS)
から設定をします。Status: On
,Max-Age: 12 months
,Include subdomains: On
,Preload: On
にします。
- 同じく
- Apexドメインに対するHTTP接続をHTTPS接続にリダイレクトした後、サブドメイン
www
にリダイレクトする設定をします。- DNSでAレコードを設定します。
- 適当なAレコードを設定するため、
Name
には@
を、IPv4 Address
には192.0.2.1
を入力します。- これはリダイレクトを設定するためのダミーです。そのため、実際に設定されたIPアドレスへ名前解決されることはありません。
192.0.2.1
は予約済みのIPアドレスであり、どこにも割り当てられていません。このような用途に用いられる、専用のIPアドレスであり、実体はありません。
Rules
から、Page Rules
へ移動します。Create Rules
から新しいルールを作成します。URL (required)
にhttps://example.com/*
を入力します。example.com
はあなたのドメインに置き換えてください。*
は特殊な記号で、任意の文字列が入ります。$1
は*
で受け取った任意の文字列を代入する場所です。
Pick a Setting (required)
ではForwarding URL
を選択してください。Select status code (required)
は301 - Permanent Redirect
を選択してください。Enter destination URL (required)
にはhttps://www.example.com/$1
を入力します。example.com
はあなたのドメインに置き換えてください。- 要するに最後に
*
と$1
を書き忘れないようにしましょう。
Save Page Rule
から設定を保存してください。- HSTS Preload Listに登録します。
- https://hstspreload.org/に移動します。
- あなたのApexドメインを入力し、提出します。
- 終了です。