ワイルドカードDNS わいるどかーどでぃーえぬえす
簡単に言うとこんな感じ!
「どんな名前でもOK!」って言えるDNSの万能ルールだよ。たとえば *.example.com と設定しておくと、aaa.example.com でも bbb.example.com でも、何でも同じサーバーに繋げてくれるんだ!
ワイルドカードDNSとは
ワイルドカードDNSとは、DNSのゾーン設定において *(アスタリスク)を使い、特定ドメイン配下の任意のサブドメインを一括で同じIPアドレスやサーバーに向ける仕組みのことです。たとえば *.example.com というレコードを1行書くだけで、shop.example.com・blog.example.com・user123.example.com などあらゆるサブドメインの名前解決が可能になります。
通常のDNSレコードは「この名前 → このIP」と1対1で設定しますが、ワイルドカードDNSは「どんな名前でも → このIP」という1対多の柔軟なルールです。SaaSサービスがテナントごとにサブドメインを発行したり、開発・テスト環境で動的にサブドメインを生成したりする場面で広く使われています。
ただし便利な反面、設定ミスや乱用はセキュリティリスクにもなります。意図しないサブドメインへのアクセスを許してしまう可能性があるため、利用する際は目的と範囲を明確にしておくことが重要です。
ワイルドカードDNSの仕組みと構造
レコードの書き方
DNSのゾーンファイルでは、以下のように * を使って記述します。
# 書式
*.<ドメイン名> IN <レコードタイプ> <値>
# 例: example.com 配下のすべてのサブドメインを 203.0.113.10 に向ける
*.example.com. IN A 203.0.113.10
# 例: すべてのサブドメインを別ホスト名(CNAME)に向ける
*.example.com. IN CNAME lb.example.com.
マッチングのルール
| リクエスト例 | ワイルドカード *.example.com にマッチするか |
|---|---|
shop.example.com | ✅ マッチする(1階層のサブドメイン) |
blog.example.com | ✅ マッチする |
a.b.example.com | ❌ マッチしない(2階層は対象外) |
example.com | ❌ マッチしない(ドメイン本体は対象外) |
ポイント: ワイルドカードは1階層のみマッチします。
a.b.example.comまで網羅したい場合は*.*.example.comではなく、アプリ側やDNSプロバイダの機能で対応する必要があります。
優先度ルール
より具体的なレコードが存在する場合、ワイルドカードよりも具体的なレコードが優先されます。
# 具体的なレコードが優先される例
shop.example.com. IN A 203.0.113.20 ← こちらが優先
*.example.com. IN A 203.0.113.10 ← それ以外はこちら
サブトピック1: 覚え方
「*(アスタリスク)= 何でも屋さん」 と覚えましょう。
プログラミングやコマンドラインで「ls *.txt」と書くと「すべての .txt ファイル」を意味するのと同じ感覚です。DNS でも * は「どんな名前でも受け付ける」というワイルドカード(切り札)の役割を果たします。
サブトピック2: 主な用途分類
| 用途 | 具体例 |
|---|---|
| SaaSのテナント分離 | {顧客名}.myapp.com を自動で振り分け |
| 開発・ステージング環境 | feature-xxx.dev.example.com を一括で開発サーバーへ |
| ワイルドカードSSL証明書 | *.example.com 証明書と組み合わせてHTTPS化 |
| メールのキャッチオール | *@example.com 宛てメールを一つのアドレスで受け取る |
歴史と背景
- 1987年 — RFC 1034・RFC 1035 によってDNSの基本仕様が策定され、ワイルドカードレコードの概念も定義される
- 1990年代後半〜2000年代 — ウェブホスティング事業者が「バーチャルホスト」でサブドメインを動的発行するためにワイルドカードDNSを活用し始める
- 2003年 — VeriSign(.com/.netレジストリ)が「Site Finder」としてワイルドカードを .com 全体に適用し、存在しないドメインへのアクセスを自社サイトへリダイレクト。ユーザー・業界から強い反発を受け撤回される(ワイルドカードの濫用として有名な事例)
- 2007年 — RFC 4592 でワイルドカードの動作仕様が詳細に再整理・明確化される
- 2010年代〜 — Heroku・Netlify・VercelなどのクラウドプラットフォームがカスタムドメインのワイルドカードDNSを積極活用。
*.vercel.appなどの形で普及 - 現在 — Let’s Encrypt がワイルドカード証明書(
*.example.com)の自動発行に対応し、HTTPS化と組み合わせてさらに使いやすくなる
ワイルドカードDNS vs 通常DNSレコード・関連技術の比較
通常DNSレコードとの比較
ワイルドカードSSL証明書との組み合わせ
ワイルドカードDNSは、ワイルドカードSSL/TLS証明書と組み合わせることで真価を発揮します。
| 項目 | 通常の証明書 | ワイルドカード証明書 |
|---|---|---|
| 対象ドメイン例 | shop.example.com のみ | *.example.com(全サブドメイン) |
| 追加コスト | サブドメインごとに必要 | 1枚で全サブドメイン対応 |
| 自動発行 | Let’s Encrypt で容易 | DNS-01チャレンジが必要 |
| セキュリティリスク | 限定的 | 証明書漏洩時の影響が広い |
セキュリティ上の注意点
⚠️ ワイルドカードDNS利用時のリスク
1. 意図しないサブドメインへのアクセスを許可してしまう
→ 攻撃者が "evil.example.com" を使ったフィッシングに悪用する恐れ
2. サブドメイン乗っ取り(Subdomain Takeover)
→ CNAMEで向けた先のサービスを解約後、そのサブドメインが乗っ取られる
3. ワイルドカード証明書の漏洩
→ 秘密鍵が漏れると全サブドメインのHTTPS通信が危険に
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 1034 | DNS概念と機能の定義。ワイルドカードレコードの基本仕様を含む |
| RFC 1035 | DNSの実装と仕様。リソースレコードの詳細定義 |
| RFC 4592 | ワイルドカードリソースレコードの動作を詳細に再定義・明確化 |
| RFC 8659 | CAA(Certification Authority Authorization)レコード。ワイルドカード証明書発行元制限に関連 |
関連用語
- DNSレコード — AレコードやCNAMEなど、DNSで管理する名前とIPの対応情報
- サブドメイン —
shop.example.comのように親ドメインの配下に設けるドメイン名 - ゾーンファイル — DNSサーバーが参照するドメインの設定ファイル
- CNAMEレコード — ドメイン名を別のドメイン名に紐付けるエイリアスレコード
- ワイルドカード証明書 —
*.example.com形式で全サブドメインをHTTPS化できるSSL/TLS証明書 - Let’s Encrypt — 無料でSSL/TLS証明書を自動発行するCAサービス
- サブドメイン乗っ取り — 放置されたサブドメインを第三者に乗っ取られるセキュリティリスク
- 名前解決 — ドメイン名からIPアドレスを調べるDNSの基本動作