2026年9月13日

2026年9月13日

ワイルドカードサブドメインが反映されないときの対処|DNS・Webサーバー・SSLの確認順

ワイルドカードサブドメイン(*.example.com)を設定したのに、新しいサブドメインが開かないときは、「名前が引けない」「引けるが違うページが出る」「証明書の警告が出る」のどれなのかを最初に分けると、原因がすぐ絞れます。DNSのワイルドカードには、既にある名前には効かない・1階層にしか効かないといった独特のルールがあり、ここでつまずくケースが多くあります。この記事では、症状の見分け方と、原因の候補を起こりやすい順に、確認方法と直し方を添えて説明します。

まず症状を3つに分ける

ブラウザで「開かない」と感じても、裏で起きていることは違います。

  1. 名前が引けない: 「このサイトにアクセスできません」「DNS_PROBE_FINISHED_NXDOMAIN」のような表示になる。DNSの問題です。
  2. 引けるが、違うページが出る: メインサイト、サーバーの初期ページ、404などが表示される。DNSは正しく、Webサーバーやアプリ側の問題です。
  3. 証明書の警告が出る: 「この接続ではプライバシーが保護されません」など。証明書が新しい名前を含んでいない状態です。

どれに当たるかは、次のコマンドで確かめられます。test123 の部分は、まだ使ったことのない適当な名前にしてください。過去に問い合わせた名前は、結果がキャッシュされていることがあるためです。

# ドメインのネームサーバー(実際に使われているDNS)を確認
dig +short NS example.com

# そのネームサーバーに直接、ワイルドカードで引けるか聞く
dig @ns1.example-dns.net test123.example.com A

# 普段使っているDNS経由でも聞いてみる
dig test123.example.com A

結果の status: 欄を見ます。NOERROR で ANSWER にIPアドレスが出ればDNSは正常です。NXDOMAIN は「その名前は無い」、NOERROR なのに ANSWER が空なら「名前はあるが、そのレコードの種類は無い」という意味で、どちらもDNS側に原因があります。ネームサーバーに直接聞くと正常なのに、普段のDNS経由だと引けない場合はキャッシュの問題です。

DNS側の原因(起こりやすい順)

1. 使われていないDNSに登録している

ドメインを買った会社の管理画面と、サーバー会社のDNS、Cloudflareなど、DNSを編集できる場所が複数あることはよくあります。実際に応答しているのは、dig +short NS で表示されたネームサーバーだけです。そのネームサーバーを提供しているサービスの管理画面でワイルドカードレコードを作っているか確認してください。

2. レコード名の書き方が違う

多くの管理画面では、ホスト名の欄に * だけを入れると *.example.com になります。*.example.com と全部入れると、画面によっては *.example.com.example.com という意図しない名前になります。保存後の一覧表示で、最終的な名前を確認してください。また、レンタルサーバーや一部のDNSサービスでは、ワイルドカードレコードに対応していない、またはプランによって扱いが違う場合があります。管理画面で * を受け付けないときは、サービスの説明を確認してください。

3. 2階層以上の名前を期待している

*.example.com が対象にするのは、a.example.com のような1階層だけです。a.b.example.com は対象外です。2階層下まで使いたいなら、*.b.example.com を別に作る必要があります。

4. 同じ名前のレコードが既にある

ここが一番分かりにくいところです。ワイルドカードは「存在しない名前」にだけ使われます。たとえば dev.example.com にTXTレコードだけがあると、dev.example.com は「存在する名前」として扱われ、Aレコードを聞いても *.example.com のAレコードは返りません(NOERROR で ANSWER が空になります)。

見落としやすいのが、下の階層にだけレコードがあるケースです。証明書の発行で _acme-challenge.dev.example.com のTXTレコードを作ると、その途中にある dev.example.com も存在する名前として扱われ、同じ現象が起きます。特定の名前だけ引けないときは、その名前と下の階層に何かレコードが無いかを一覧で確認し、必要ならその名前にAレコードを明示的に追加してください。

5. 「存在しない」という応答がキャッシュされている

ワイルドカードを作る前に一度その名前にアクセスしていると、「その名前は無い」という結果がDNSのキャッシュに残ります。このキャッシュの長さは、ゾーンのSOAレコードの値で決まり、数分から数時間まで幅があります。ネームサーバーに直接聞いて正しく返るなら、設定は正しいので、時間を置くか、別の名前で動作を確認してください。パソコン側のキャッシュは、OSのDNSキャッシュを消すと解消することがあります。

Webサーバー側の原因

名前は引けるのに違うページが出るなら、Webサーバーがそのサブドメインを受け付ける設定になっていません。Webサーバーは、届いたリクエストのホスト名を見て、どのサイトを返すかを決めます。知らないホスト名は、最初に定義されたサイトや既定のサイトに回されるため、メインサイトや初期ページが表示されます。

Nginxなら、server ブロックの server_name にワイルドカードを含めます。

server {
    listen 443 ssl;
    server_name example.com *.example.com;
    # ssl_certificate などの設定は省略
    root /var/www/example;
}

Apacheなら、VirtualHost に ServerAlias *.example.com を追加します。設定を変えたら、Nginxは nginx -t、Apacheは apachectl configtest で文法を確認してから再読み込みしてください。変更前には設定ファイルのバックアップを取っておきます。

DNSを変えずにサーバー側だけを確かめたいときは、curl の --resolve オプションで、名前とIPアドレスの対応を一時的に指定できます。

curl -sI --resolve test123.example.com:443:203.0.113.10 https://test123.example.com/

レンタルサーバーでは、管理画面から登録したサブドメインしか受け付けない仕組みのことが多く、ワイルドカードでの受け付けに対応していない場合もあります。その場合は、サブドメインを1つずつ登録するか、ワイルドカードに対応したプランやVPSを検討してください。

証明書の警告が出る場合

サブドメインごとに個別の証明書を使っていると、新しい名前は証明書に含まれていないため警告が出ます。サブドメインが増え続けるなら、ワイルドカード証明書(*.example.com)が向いています。Let's Encryptでワイルドカード証明書を取るには、DNSにTXTレコードを書き込むDNS認証が必要です(2026年10月現在)。ワイルドカード証明書も1階層だけが対象で、ルートドメインは含まないので、両方使うなら証明書に example.com と *.example.com を入れます。

Cloudflareのプロキシを使っている場合は、Cloudflare側の証明書が使われます。標準の証明書はルートドメインと1階層のサブドメインを対象にしているとされ、2階層下は別の設定が必要になります。プロキシの対象やプランごとの扱いは変わることがあるので、Cloudflareの最新の説明を確認してください。

WordPressマルチサイトで使っている場合

サブドメイン型のマルチサイトでは、ワイルドカードDNSとWebサーバーのワイルドカード設定の両方がそろって初めて、新しいサイトが開けるようになります。DNSもサーバーも正しいのに子サイトだけ403や404になるなら、Webサーバーの設定の細部(try_files や権限など)を疑います。存在しないサイト名にアクセスしたときは、WordPressが登録ページやメインサイトに転送することがあり、これは故障ではなく仕様です。

まとめ

  • まず「名前が引けない」「違うページが出る」「証明書の警告」のどれかを分けます。dig の status: とネームサーバーへの直接問い合わせが手がかりになります。
  • DNS側は、使われていないDNSへの登録、レコード名の書き方、1階層のみという範囲、同名レコードの存在、ネガティブキャッシュの順に確認します。
  • 違うページが出るなら、Webサーバーの server_name や ServerAlias にワイルドカードが入っているかを確認します。
  • 証明書はワイルドカード証明書で1階層分をまとめて扱えます。2階層下とルートドメインは別に含めます。

お気軽にご相談ください

お見積りへ お問い合わせへ
▲