これまで本サイトは Netlify に収容してきたが、このたび Cloudflare Pages に移転した。
Netlify は無料プランの場合、日本からのアクセスはシンガポールのサーバーで受けるが、Cloudflare Pages なら日本国内のサーバーで受けてくれるので。
本サイトは生成に Hugo を使用し、電力料金比較表だけは PHP (php-cli) で Hugo 用のソースを出力するという変則的な構成だが、Cloudflare Pages でも何一つ変更することなくこなしてくれている。
Cloudflare DNS を使わず、DNS CAA レコードを使っている場合の注意点
ここだけ少し引っかかった。
- そのドメイン名 (仮に example.com とする) で Cloudflare DNS ではなく外部の DNS サーバーを使っている
- host.example.com を CNAME で example.pages.dev に向けている
- DNS CAA レコードで SSL 証明書を発行できる認証局を指定している
- その認証局に Cloudflare が利用している認証局が含まれていない
という条件を満たす場合に、CNAME レコードを設定しただけでは Active にならず、Inactive (Error) になってしまう。
自前の DNS と Let’s Encrypt を使っている場合が該当する。
Cloudflare Pages では Cloudflare 発行の SSL 証明書を使うことになっているので、それが発行できる状態でないとダメ、というわけだ。
そのため一度 Remove domain し、Cloudflare が SSL 証明書を発行できるように CAA レコードを追加する必要がある。
example.com. IN CAA 0 issue "digicert.com"
example.com. IN CAA 0 issue "comodoca.com"
レコードは Cloudflare の説明による。
Cloudflare DNS では issuewild も設定されるが、Cloudflare Pages に本サイトを収容する際には必要なかった。
(2024/10/14 追記)
現時点で必要なのは以下の模様。
example.com. IN CAA 0 issue "comodoca.com"
example.com. IN CAA 0 issue "digicert.com; cansignhttpexchanges=yes"
example.com. IN CAA 0 issue "letsencrypt.org"
example.com. IN CAA 0 issue "pki.goog; cansignhttpexchanges=yes"
example.com. IN CAA 0 issue "sectigo.com"
example.com. IN CAA 0 issue "ssl.com"