Azure Front DoorでカスタムドメインのCNAMEが検出されない原因と対処法|DNS状態の警告と404 Page not foundを解消

Azure Front Door StandardでAzure Storage静的Webサイトを公開しているのに、カスタムドメインが「CNAME/Alias record is not currently detected」と表示され続け、アクセスすると404になる…。本記事ではDNS設定の確認ポイントと、Front Door側の状態不整合を解消する具体的手順をまとめます。

目次

よくある症状

構成としては「Azure Storage の静的ウェブサイト」→「Azure Front Door Standard(以下 AFD)」→「独自ドメイン(例:www.dongan.cloud)」の順に公開しているのに、次のような状態から抜け出せないケースがあります。

  • AFD のカスタムドメイン画面で、ドメイン検証ステータスが Approved(承認済み)
  • 証明書ステータスが Deployed(デプロイ済み)
  • しかし「DNS 状態」に CNAME/Alias record is not currently detected の警告が残り続ける
  • https://www.dongan.cloud にアクセスすると Azure の Page not found が表示される
  • 24時間以上待っても改善しない

一見すると「CNAME が間違っている」「まだ伝播していない」と考えがちですが、検証が Approved になり証明書も Deployed まで到達しているなら、DNS 側は概ね正しく、AFD 側の“状態の更新”が追いついていないパターンも疑うべきです。

構成を図解的に整理する

まずは、どこが“入口”で、どこで詰まっているのかを言語化しておくと、切り分けが早くなります。今回の典型構成を表にすると次の通りです。

役割具体例正常時に期待すること
オリジンAzure Storage 静的ウェブサイト(*.web.core.windows.net)直接アクセスでコンテンツが表示される
CDN/リバースプロキシAzure Front Door Standard(*.azurefd.net)AFD のエンドポイント URL でも表示される(またはホストヘッダーを付けて疎通できる)
独自ドメインwww.dongan.cloudDNS が AFD に向き、AFD のルートにドメインが紐づいて表示される

まず切り分けるべきポイント

「Page not found」と「CNAME が検出されない」が同時に見えると混乱しますが、トラブルシューティングでは “どの層の問題か” を先に確定させるのがコツです。

見えている症状疑う層最初にやる確認
AFD の *.azurefd.net に直接アクセスできるAFD 自体は稼働ルートとオリジンに問題がないかを確認
ストレージ静的サイトは直接アクセス可能オリジンは稼働AFD からオリジンへの Host ヘッダー/パス/ヘルスプローブを確認
独自ドメインで Azure の 404AFD の「ルートに紐づくドメイン判定」ドメインがルートに関連付いているか、状態が同期しているかを確認
ポータルに CNAME 未検出の警告が残るDNS か AFD の内部チェックDNS の競合レコード有無、AFD 側の検証状態更新を試す

DNS が正しいのに警告が消えないときの考え方

今回のように Namecheap 側で次のような CNAME を設定していて、外部からの名前解決も正常なら、DNS そのものはほぼOKです。

項目設定例
種別CNAME
ホストwww
値CDN-profile1-axavdqaya2dkfffr.z02.azurefd.net

それでもポータルの「DNS 状態」だけが古いまま残る場合、次のような “表示と実態のズレ” が起きていることがあります。

  • AFD のカスタムドメインは、ドメイン検証(TXT) と DNS 状態検出(CNAME/ALIAS) が別系統でチェックされる
  • TXT は検出できて証明書も Deployed なのに、CNAME 状態だけ更新されない
  • 外部の nslookup やオンライン DNS チェッカーでは正しい CNAME が見えている

この条件が揃っているなら、「本当に CNAME が無い」よりも「AFD 側の内部状態が同期していない」 の方が症状に合致します。現場ではこのパターンが意外と多く、設定自体をいじり倒すよりも、AFD に“再判定のきっかけ”を与える方が早く復旧します。

解決手順

ここからは、実務で再現率の高い順に、手戻りが少ない手順を紹介します。上から順に実施してください。

ルートから一度外して付け直す

AFD に「このドメインの紐づきと DNS 状態をもう一度評価して」と促す操作です。カスタムドメイン側ではなく、Front Door Manager のルート設定 を触るのがポイントになります。

  1. Azure ポータルで対象の Front Door プロファイル(例:afd-dongan-portfolio)を開きます。
  2. Front Door Manager を開き、対象の ルート(Route) を選択します(例:default-route)。
  3. ルートの Domains セクションで、www.dongan.cloud のチェックを外して関連付けを解除し、保存します。
  4. 構成の反映が落ち着くまで少し待ちます(“反映の波”を作るのが目的です)。
  5. 同じルートに戻り、再び www.dongan.cloud をドメインとして関連付け、保存します。
  6. Front Door プロファイルの Domains 画面で www.dongan.cloud を選択し、Refresh Validation State(検証状態の更新)を実行します。

ポイント:この操作は「DNS を変える」のではなく、AFD 側の内部テーブル(状態管理)を更新させるのが目的です。DNS 側が正しいのに警告が消えないときほど効果があります。

DNS の競合レコードが無いか最終確認する

同一ホスト名(ここでは www)に対して CNAME と他のレコードが共存 していると、プロバイダによっては見え方が変わったり、ある resolver では A が返り別の resolver では CNAME が返るなどの“揺れ”が起きます。ポータルが検出できない原因にもなり得るため、必ず潰しておきます。

確認対象なぜ問題になるか対応
www の A レコードCNAME と競合し、正しい CNAME が返らないことがある不要なら削除
www の AAAA レコードIPv6 側だけ別の行き先になる不要なら削除
www の URL Redirect / Web RedirectDNS ではなくリダイレクト機能が優先されることがあるオフにするか設定を見直す
www の TXT レコードドメイン検証用 TXT は別ホスト名で作るのが安全な場合がある必要性を確認して整理

すでに nslookup で CNAME が引けている場合でも、レコード競合は「時々だけおかしい」「一部の地域だけおかしい」という形で残ることがあるため、ここは手間を惜しまない方が結果的に早く復旧します。

ホストヘッダーで AFD を直接テストする

DNS を経由せず、AFD 側の「この Host でルーティングできるか」を確認できる便利な方法です。独自ドメインの名前解決が疑わしいときでも、AFD のルート設定やドメイン紐づきの問題を切り分けられます。

例として、AFD のエンドポイントが CDN-profile1-axavdqaya2dkfffr.z02.azurefd.net の場合、次のようにリクエストします。

curl -I https://CDN-profile1-axavdqaya2dkfffr.z02.azurefd.net/ -H "Host: www.dongan.cloud"
  • ここで期待するのは、ストレージの静的サイト(または AFD のルートが返す想定のコンテンツ)に繋がることです。
  • もしここでも 404 になるなら、DNS ではなく AFD のルート/ドメイン紐づき/オリジン設定 に原因が寄ってきます。
  • ここで正常に返るのに独自ドメインだけ 404 なら、DNS もしくは AFD の DNS 状態検出(ポータル表示)に原因が寄ります。

Front Door 側で見落としやすい設定

「CNAME が検出されない」と表示されていると DNS ばかり見がちですが、実際には AFD 側の設定ミスで 404 を踏んでいるケースもあります。次のチェックを“復習”として入れておくと、別原因を同時に潰せます。

ルートのドメイン関連付け

  • 対象のルート(例:default-route)に www.dongan.cloud が確実に関連付いているか
  • ルートが Enabled になっているか(無効化されていないか)
  • パターンが /* など、想定のパスを包含しているか

オリジングループとオリジンの健全性

  • オリジングループに Azure Storage の静的ウェブエンドポイントが登録されているか
  • ヘルスプローブが失敗していないか(失敗していると AFD がバックエンドに流さない)
  • 複数オリジンがある場合、優先度/重みづけが意図通りか

オリジンへの Host ヘッダー

Azure Storage の静的ウェブサイトは、Host ヘッダーが合わないと 404 になりやすいです。AFD からオリジンに送る Host ヘッダー(Origin host header)が、ストレージ静的サイトのホスト名になっているか確認します。ここが誤って独自ドメインのままだと、オリジン側で見つからず 404 になることがあります。

設定項目推奨の考え方例
Origin hostname実際のオリジンのホスト名<storage>.zXX.web.core.windows.net
Origin host header原則としてオリジンのホスト名に合わせる<storage>.zXX.web.core.windows.net

HTTPS リダイレクトやルールセット

  • HTTP→HTTPS リダイレクトを入れている場合、意図しないルートに飛んでいないか
  • Rules Engine(ルールセット)で Host や Path を書き換えていないか
  • WAF を使っている場合、誤検知でブロックされていないか

Namecheap 側の設定で確認したいポイント

Namecheap などのレジストラ/ DNS 事業者の UI では、同じホスト名に複数種別のレコードを追加できてしまう場合があります。次のチェックリストを、最後に“目視”で確認してください。

チェック項目OK の状態NG の例
www が CNAME になっているCNAME 1本のみA と CNAME が同居
CNAME の値AFD のエンドポイント(*.azurefd.net)別のホスト名(タイプミス、末尾の余計な文字)
TTL極端に長くない過去設定のまま数日単位
DNSSEC/特殊機能意図通り有効/無効途中で設定を変えて検証が揺れる

また、www.dongan.cloud と dongan.cloud(ルートドメイン)は別物です。ルートドメインは CNAME を置けない DNS 事業者も多い ため、まずは www だけを確実に動かし、その後にルートドメインは ALIAS/ANAME 対応の有無を見て設計するのが安全です。

確認に使えるコマンド

「自分のPCでは見えるのに、Azure では検出できない」といった時は、複数の resolver で引いて差分を見ると原因に近づきます。代表的なコマンド例を載せます。

名前解決の確認

nslookup www.dongan.cloud
nslookup -type=cname www.dongan.cloud

別の DNS で引いて差を見る

nslookup www.dongan.cloud 8.8.8.8
nslookup www.dongan.cloud 1.1.1.1

キャッシュの影響を避けた疎通

DNS が揺れているときは、前述の Host ヘッダー指定の curl が特に役立ちます。

curl -I https://CDN-profile1-axavdqaya2dkfffr.z02.azurefd.net/ -H "Host: www.dongan.cloud"

それでも改善しない場合の現実的な選択肢

上の手順をやっても、ポータルの警告が消えない/独自ドメインの 404 が続く場合は、AFD 側で状態が固まっている可能性があります。こうなると利用者側の操作だけでは限界があるため、Azure サポートに「カスタムドメインの DNS 状態が更新されない」 旨で依頼するのが最短です。

サポートに出すときは、調査が早く進むように次の情報をまとめておくとスムーズです。

  • 対象のカスタムドメイン(例:www.dongan.cloud)
  • Front Door プロファイル名、エンドポイント名
  • CNAME の値(例:CDN-profile1-axavdqaya2dkfffr.z02.azurefd.net)
  • 問題が発生している時刻帯(できれば UTC も併記)
  • nslookup の結果(複数 resolver の結果があると強い)
  • ブラウザで表示されるエラー画面のスクリーンショット

復旧後にやっておきたいチェック

復旧した直後は「表示できるようになった」で終わらせず、再発防止のために次も確認しておくのがおすすめです。

  • AFD の Domains 画面で DNS 状態が正常表示に変わっているか
  • 証明書の有効期限と自動更新の状態
  • キャッシュ(Purge)後の反映が想定通りか
  • ストレージ側の index.html と 404.html(エラードキュメント)の設定が適切か
  • www 以外に必要なサブドメイン(cdn、assets など)が増える予定があるなら、レコード設計を先に固める

Azure ポータルのステータスを正しく読む

AFD のカスタムドメイン周りには複数のステータスがあり、それぞれ見ているものが違います。混同すると「証明書は出ているのに、なぜ CNAME を見つけられない?」という違和感が強くなります。代表的な項目を整理しておきます。

ポータルの表示主に見ているものこの状態で言えること次の一手
Domain validation: Pending検証用 TXT レコードTXT が見えていない、または反映待ちTXT 名・値・ホスト名(@ かサブドメインか)を再確認
Domain validation: Approved検証用 TXT レコードTXT は少なくとも一度検出されている証明書/ルート/ DNS 状態の確認へ進む
Certificate: Deploying証明書の発行と AFD への展開HTTPS で提供する準備中待機しつつ DNS/ルートの設定を見直す
Certificate: Deployed証明書の展開完了AFD 側は HTTPS 提供の準備が整っている表示が 404 の場合はルート・オリジン側を疑う
DNS state: CNAME/Alias record is not currently detectedAFD が独自ドメインからの CNAME/ALIAS を検出できるかDNS が誤りの可能性もあるが、状態更新の遅延/不整合でも発生し得る競合レコード確認→ルート付け直し→Refresh Validation State

特に重要なのは、Approved + Deployed まで進んでいるのに DNS state だけが赤い、という組み合わせです。このときは「DNS がゼロから間違っている」より、AFD 側の状態が追従していない ケースを優先して疑うと、ムダな試行錯誤を減らせます。

Page not found を見分ける

同じ「404」でも、どこが返しているかで対処が変わります。目視の画面だけだと判断が難しいので、ヘッダーで切り分けるのがおすすめです。

404 の出どころありがちな見え方原因候補確認方法
AFD(ルートに一致しない)Azure の汎用的な 404 画面になりやすいドメインがルートに紐づいていない、ルートが無効、パスパターン不一致Host ヘッダー指定の curl、ルートの Domains を再確認
オリジン(ストレージ)ストレージ側の 404(独自デザインを入れている場合も)Origin host header 不一致、ファイルが無い、index/404 ドキュメント設定オリジンに直接アクセスして同じパスを叩く
WAF/ルール403/404 が混在することも誤検知、URL 書き換え、リダイレクトループルールセット無効化で再現性を見る、ログを見る

実務では「独自ドメインだけ 404」「エンドポイントは表示できる」という組み合わせが多く、この場合は ルートに独自ドメインが“認識されていない” ことが原因の中心になります。ポータルの DNS state が古いまま残っていると、その“認識”がうまく同期していないサインにもなります。

反映待ちでやりがちな失敗

焦って設定を変更し続けると、どの変更が効いたのか分からなくなり、逆に復旧が遅れます。次の行動は避けるのが無難です。

  • DNS レコードの値を何度も変えて「前の値に戻す」を繰り返す
  • 証明書を削除して作り直す(問題が DNS state のみの場合は遠回りになりやすい)
  • ルートやオリジングループを増やして構成を複雑化させる
  • Purge を連打して「効いていない」と判断する(そもそもルーティングされていない 404 には効果が薄い)

今回のように DNS と設定が“ほぼ正しい”状況では、状態を再評価させる 操作(ルート付け直し、検証状態更新)が一番効率的です。

ログで確証を取る

どうしても判断がつかないときは、AFD の診断ログ(アクセスログ、ヘルスプローブ、WAF など)を Azure Monitor に出して、実際にどこまで到達しているかを確認します。

  • 独自ドメインへのアクセスログが 一切出ない → DNS/クライアント側で AFD に届いていない可能性
  • アクセスログは出るが、結果が 404 でオリジンに到達していない → ルート/ドメイン関連付けの問題が濃厚
  • オリジンへの疎通ログやヘルスプローブが失敗している → オリジンホスト名、ホストヘッダー、TLS、ネットワーク制限を疑う

サポートに依頼する場合も、ログの有無は非常に強い材料になります。「いつ、どの URL にアクセスし、どこで 404 になっているか」を示せるだけで、調査の時間が大きく短縮されます。

よくある質問

nslookup で CNAME が見えるのに、なぜ AFD が検出できないのか

AFD 側の検出は、あなたの PC が参照している DNS resolver と同じとは限りません。地域やキャッシュ、DNSSEC、CNAME チェーン、負のキャッシュ(NXDOMAIN のキャッシュ)などで、特定のタイミングだけ“見えない”ことがあります。また、ポータル表示が更新されず、内部的には解決できているのに警告だけ残るケースもあります。まずは競合レコードを潰し、ルート付け直しと検証状態更新で再判定を促してください。

www は OK なのにルートドメインがうまくいかない

dongan.cloud のようなルートドメインは、DNS 仕様上 CNAME を置けないため、DNS 事業者が ALIAS/ANAME など独自機能で吸収しているかどうかに依存します。ルートドメインも AFD で受けたい場合は、DNS 事業者が ALIAS 相当を提供しているか確認し、提供していない場合は www に統一してリダイレクト する設計が現実的です。

証明書が Deployed なのに 404 になるのはおかしくないか

証明書は「HTTPS で受けられる」ことを保証するだけで、ルートが正しく紐づき、オリジンに流れていることまでは保証しません。つまり Deployed でも 404 は普通に起こり得ます。ルートの Domains、パスパターン、オリジンホストヘッダーを順に確認してください。

運用で再発を減らすコツ

一度直っても、ドメイン追加や構成変更のタイミングで似た問題が再発することがあります。次の運用を入れておくと、切り分けが楽になります。

  • DNS を変更する前に TTL を短めにしておき、変更後に落ち着いたら戻す
  • 変更作業の前後で nslookup 結果を保存して差分を残す
  • AFD のルートに紐づくドメイン一覧を「最小限」に保つ(不要なドメインを残さない)
  • Host ヘッダー指定の curl を“いつでもできる確認手段”として覚えておく

まとめ

「CNAME/Alias record is not currently detected」が消えないからといって、必ずしも DNS が誤っているとは限りません。特に、ドメイン検証が Approved で証明書も Deployed まで到達しているなら、DNS 側はほぼ整っている可能性が高く、AFD 側の状態更新が追いついていないケースも現実的に起こります。

現場対応としては次の流れが実用的です。

  • DNS の競合(同一ホストの A/AAAA など)が無いか確認
  • Front Door Manager のルートからドメインを一度外し、付け直して検証状態を更新
  • Host ヘッダー指定の curl で「AFD がそのドメインを認識しているか」を切り分け
  • 改善しなければ Azure サポートへ依頼して状態をリフレッシュ

この順番で進めると、DNS を無駄に弄って泥沼化するのを避けつつ、最短で復旧できる可能性が高まります。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次