2026年9月3日
2026年9月3日
Cloudflare SSLのDCV認証手順(Universal SSL・CNAME設定・オリジン証明書の違いと確認方法)
Cloudflare でHTTPSを使うときのDCV(ドメイン認証)は、ネームサーバーを Cloudflare に向けている「フルセットアップ」なら基本的に自動で完了し、ネームサーバーを移さない「CNAME(パーシャル)セットアップ」や独自に証明書を選ぶ場合にだけ、利用者側でTXTレコードやCNAMEの追加が必要になります。この記事では、どの構成で何を設定すればよいか、認証が終わらないときに何を確認するか、そしてオリジンサーバー側の証明書との関係を整理します。
なお、同じサイトの Sectigo のDCV解説は「認証局に申請者として証明書を申し込む」立場の記事で、こちらは「Cloudflare が利用者に代わって証明書を取得する」仕組みを扱います。
Cloudflare のSSLは「エッジ」と「オリジン」の2区間
まず押さえておきたいのは、Cloudflare 経由の通信には2つのTLS区間があることです。
- エッジ証明書: 訪問者のブラウザと Cloudflare の間で使う証明書。Cloudflare が認証局から取得し、DCVもこの証明書のために行われます。
- オリジン側の証明書: Cloudflare とあなたのサーバーの間で使う証明書。Cloudflare が発行する Origin CA 証明書か、Let's Encrypt などの公開証明書を自分で用意します。
「DCVが終わらない」という相談の多くはエッジ証明書の話ですが、「SSLエラーが出る」という症状はオリジン側の証明書が原因のこともあります。どちらの区間の問題かを最初に切り分けてください。
構成別: DCVで利用者がやること
フルセットアップ(ネームサーバーを Cloudflare に変更)
ドメインを追加してネームサーバーを切り替えると、Universal SSL のエッジ証明書が自動で発行されます。DNSを Cloudflare が管理しているため、DCVに必要なレコードも Cloudflare が自動で扱い、利用者の作業は基本的にありません。
Universal SSL がカバーするのは、ルートドメイン(example.com)と1階層のサブドメイン(*.example.com)です。www.shop.example.com のような2階層以上のサブドメインは対象外で、Advanced Certificate Manager などの有料機能で証明書を追加する必要があります(2026年10月現在)。
CNAME(パーシャル)セットアップ
ネームサーバーは他社のまま、特定のホスト名だけを CNAME で Cloudflare に向ける構成です。この場合 Cloudflare はDNSを直接操作できないため、DCV用のレコードを利用者が元のDNSに追加します。
Cloudflare のダッシュボードの SSL/TLS 関連の画面(エッジ証明書の一覧)に、検証待ちの証明書と追加すべきTXTレコードの名前・値が表示されます。画面の名称や配置は変わることがあるので、見当たらない場合は公式ドキュメントで現在の場所を確認してください。
TXTレコードの値は証明書の更新のたびに変わるため、毎回手作業で追加するのは現実的ではありません。そこで用意されているのが DCV委任(DCV Delegation) です。_acme-challenge のホスト名を、Cloudflare が指定する dcv.cloudflare.com 配下のホスト名へ CNAME で向けておくと、以後の更新時の認証を Cloudflare が自動で行えるようになります。
_acme-challenge.example.com. CNAME example.com.xxxxxxxxxxxxxxxx.dcv.cloudflare.com.
右側の値はゾーンごとに異なり、ダッシュボードに表示されたものを使います。上は形式の例です。
HTTPによるDCV
プロキシ(オレンジ雲)を有効にしたホスト名では、HTTPでの検証を選べる場合があります。Cloudflare がエッジで検証用のトークンを返すため、オリジンサーバーにファイルを置く必要はありません。ただし、DNSのみ(グレー雲)のホスト名や、ワイルドカード証明書では使えません。
認証が終わらないときの確認(起こりやすい順)
1. ネームサーバーの切り替えがまだ反映されていない
フルセットアップでは、ゾーンが有効(Active)になるまで証明書は発行されません。レジストラ側でネームサーバーを変更したか、dig で確認します。
dig +short NS example.com
Cloudflare が割り当てた2つのネームサーバーが返れば切り替わっています。ゾーンが有効になってから証明書の発行までは、通常は数分から数十分、長いと24時間程度かかることがあります。
2. CAAレコードが他の認証局だけを許可している
CAAレコードで特定の認証局だけを許可していると、Cloudflare が使う認証局からの発行が拒否されます。
dig +short CAA example.com
Cloudflare は Universal SSL 用に必要なCAAレコードを自動で補う仕組みを持っていますが、パーシャルセットアップでは自動追加されないため、他社DNS側で Cloudflare が使う認証局を許可する必要があります。Cloudflare が利用する認証局の組み合わせは時期によって変わるため、最新の一覧は公式ドキュメントで確認してください。
3. TXT・CNAMEレコードの入力ミス
パーシャルセットアップで最も多い原因です。権威DNSサーバーに直接問い合わせて、表示どおりの値が返るかを見ます。
dig +short TXT _acme-challenge.example.com
dig +short CNAME _acme-challenge.example.com
DNS管理画面のホスト欄にドメイン名まで入れて _acme-challenge.example.com.example.com になっている例がよくあります。また、DCV委任のCNAMEと手動のTXTレコードを同じホスト名に同時に置くことはできません(CNAMEは他のレコードと共存できないため)。どちらかに統一してください。
4. プロキシやセキュリティ設定がHTTP検証を妨げている
HTTP検証を選んでいて失敗する場合は、そのホスト名がプロキシ有効になっているかを確認します。DNSのみのホスト名ではHTTP検証は通りません。迷う場合はTXT方式(またはDCV委任)に切り替えるのが近道です。
オリジン側の証明書とSSL/TLS暗号化モード
エッジ証明書が発行されても、Cloudflare とオリジンの間の設定が合っていないとエラーになります。暗号化モードは「Full (strict)」を選び、オリジンには有効な証明書を置くのが推奨です。
- Origin CA 証明書: Cloudflare のダッシュボードから発行でき、DCVは不要です。Cloudflare からの接続でだけ信頼される証明書なので、プロキシを外すとブラウザでは警告が出ます。
- 公開証明書(Let's Encrypt など): プロキシを外しても使えます。Cloudflare 配下で取得するなら、DNS-01 方式が扱いやすい選択肢です。
certbot では certbot-dns-cloudflare プラグインを使うと、Cloudflare のAPIトークンでDNS-01の認証を自動化できます。トークンは対象ゾーンのDNS編集だけに権限を絞り、認証情報ファイルは所有者だけが読めるようにします。
# /root/.secrets/cloudflare.ini (chmod 600)
dns_cloudflare_api_token = your-api-token
sudo certbot certonly --dns-cloudflare \
--dns-cloudflare-credentials /root/.secrets/cloudflare.ini \
-d example.com -d '*.example.com'
sudo certbot renew --dry-run
--dry-run で更新処理が通ることを確認しておくと、期限切れの事故を防げます。認証情報ファイルはWebサーバーの公開ディレクトリやGitリポジトリに置かないでください。
暗号化モードを「Flexible」にすると、Cloudflare とオリジンの間はHTTPになり、WordPress 側でHTTPSへ転送する設定と組み合わさってリダイレクトループが起きやすくなります。DCVとは別の問題ですが、証明書まわりの作業と同時に起きやすいので注意してください。
発行後の確認
エッジ証明書が有効になったら、外部から発行者と有効期限を確認します。
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null \
| openssl x509 -noout -issuer -dates -ext subjectAltName
SANに対象のホスト名が含まれていれば、そのホスト名はエッジ証明書でカバーされています。
まとめ
- Cloudflare のSSLはエッジとオリジンの2区間。DCVはエッジ証明書のための手続き。
- フルセットアップではDCVは自動。2階層以上のサブドメインは Universal SSL の対象外。
- パーシャルセットアップでは表示されたTXTを追加するか、DCV委任のCNAMEを設定して更新を自動化する。
- 終わらないときは、ネームサーバーの反映、CAAレコード、レコードの入力ミス、プロキシ状態の順に確認する。
- オリジンには Origin CA 証明書か公開証明書を置き、暗号化モードは Full (strict) を選ぶ。