DNS認証とは、DNSに特定の情報を登録することで、そのドメインに対する管理権限があることを確認したり、メール送信やサービス連携に必要な設定情報を第三者が検証できるようにしたりする仕組みです。
少しやさしく言うと、「そのドメインをちゃんと管理できる人かどうかを、DNSの設定内容で確認する方法」と考えるとわかりやすいです。
たとえば、次のような場面でよく使われます。
つまりDNS認証は、Webサイト運用、メール配信、各種ツール連携などで広く使われる、とても重要な仕組みです。
DNSは、ドメイン名と各種設定情報を管理する仕組みです。
インターネット上では、人は example.com のようなドメイン名でWebサイトを認識しますが、コンピュータはIPアドレスを使って通信します。
DNSは、その対応関係を管理しています。
たとえば、
example.com → 192.0.2.1のように、「このドメインはどこに接続すればよいか」を案内する役割があります。
ただし、DNSに登録できるのはIPアドレスだけではありません。
DNSには、
なども登録できます。
DNS認証は、こうしたDNS上の情報を使って、ドメインの管理権限や設定の正当性を確認する仕組みです。
一般的な流れはとてもシンプルです。
たとえばGoogleやメール配信サービスが、確認用の文字列や接続先情報を発行します。
例
google-site-verification=xxxxxrandom-token-12345ドメイン管理者は、DNS管理画面で指定されたレコードを追加します。
ここでよく使われるのが、
です。
サービス側がDNS情報を参照して、
を確認します。
正しく設定されていれば、「このドメインを操作できる権限がある」または「このドメインの設定が有効である」と判断され、認証や連携が完了します。
DNS設定を変更できるのは、通常、そのドメインのDNSを管理している人だけです。
つまり、第三者が勝手に
example.com のTXTレコードを追加するexample.com のCNAMEを変更することはできません。
そのため、指定された値をDNSに正しく追加できた時点で、そのドメインに対する技術的な管理権限を持っていると判断しやすくなります。
ここでいうのは厳密な法的所有権というより、DNSを変更できる管理権限です。
実務では、社内担当者、制作会社、代理店、情シス部門などがDNSを管理しているケースもあります。
DNS認証は、主に次のような場面で使われます。
代表例は以下です。
「そのドメインを本当に管理できるか」を確認する用途です。
メール分野では、DNSを使って送信ポリシーや公開鍵を公開し、受信側がそれを参照して検証します。
代表的なのが次の3つです。
これらは厳密には役割が異なりますが、いずれもDNSを利用する重要なメール関連設定です。
SPF
「このドメインからメール送信を許可しているサーバーはどれか」を示す設定です。
DKIM
メールに付けた電子署名を検証するための公開鍵をDNSで公開する仕組みです。
DMARC
SPFやDKIMの結果と、Fromドメインとの整合性をもとに、受信側へ取り扱い方の方針を示す仕組みです。
これらを適切に設定することで、
につながります。
たとえば、
などに独自ドメインを接続する場合も、DNS設定による確認が行われることがあります。
最もよく使われるレコードです。
任意の文字列を登録できるため、確認用トークンやポリシー情報を置くのに向いています。
例
Host: @
Type: TXT
Value: google-site-verification=abc123
これは、ルートドメインに対してGoogleの確認用文字列を登録する例です。
ある名前を別のホスト名に向けるレコードです。
サービスによっては、認証や接続確認のためにCNAMEを使います。
例
Host: verify
Type: CNAME
Value: verify.service-example.com
メールの受信先サーバーを指定するレコードです。
これは主にメール受信のための設定であり、ドメイン所有権確認そのものの主役ではありません。
ただしメール運用全体では非常に重要です。
SPFは通常、TXTレコードとして登録します。
Host: @
Type: TXT
Value: v=spf1 include:_spf.google.com ~all
これは、「指定した送信元からのメールを許可する」というポリシーを表します。
DKIMも通常はTXTレコードとして設定します。
Host: selector1._domainkey
Type: TXT
Value: v=DKIM1; k=rsa; p=...
ここで登録するのは公開鍵です。
実際には、送信側サーバーが秘密鍵でメールに署名し、受信側がDNS上の公開鍵でその署名を検証します。
そのため、DKIMはDNSにTXTを置くだけで完了するものではなく、送信側の署名設定も必要です。
DMARCもTXTレコードとして設定します。
Host: _dmarc
Type: TXT
Value: v=DMARC1; p=none; rua=mailto:report@example.com
これは、受信側に対して「DMARCのポリシー」や「レポート送信先」を示す設定です。
この2つは混同されやすいですが、少し整理すると理解しやすくなります。
一般的には、DNSレコードを使って
などを確認・検証する仕組み全般を指して使われることが多い言葉です。
SPF、DKIM、DMARCのように、DNSを利用してメールの正当性や取り扱い方を判断するための仕組みです。
つまり、
と考えると整理しやすいです。
たとえばGoogle Search Consoleでドメイン確認を行う場合は、次のような流れになります。
google-site-verification=xxxxxxxx
@ または空欄TXTgoogle-site-verification=xxxxxxxx※ DNS管理画面によっては、@ ではなく空欄を使う場合があります。
DNSはすぐに反映されることもありますが、キャッシュやDNSプロバイダの仕様によって時間がかかることもあります。
Google側が指定の値を確認できれば、認証完了です。
HTMLファイルアップロードやmetaタグ設置と比べて、サーバーやCMSの構成に依存しにくいのが強みです。
URL単位ではなく、ドメイン全体やサブドメイン単位での管理確認に向いています。
メール、SaaS、CDN、SSL、分析系ツールなど、非常に多くのサービスで使われています。
設定直後は正しく入力していても認証されないことがあります。
これはDNSキャッシュやTTLの影響によるものです。
よくあるミスには次のようなものがあります。
@ と空欄の使い分けを誤るWebサーバーの管理画面と、DNSの管理画面は別であることがよくあります。
たとえば、
のように分かれていることがあります。
この場合、DNS認証の設定は実際に権威DNSを管理している場所で行う必要があります。
よくある原因は次の通りです。
@ は一般的に、ルートドメインそのものを意味します。
たとえば example.com では、
www → www.example.commail → mail.example.com@ → example.comというイメージです。
ただし、DNSサービスによっては @ ではなく空欄で指定する場合もあります。
基本的に、TXTレコード自体は複数あって問題ありません。
実際、ドメイン確認用トークン、SPF、DMARCなどが並ぶことはよくあります。
ただし注意点があります。
同じホスト名に v=spf1 で始まるSPFポリシーを複数置くのはNG です。
つまり、
という理解が正確です。
この2つも混同されやすいポイントです。
DNSレコードを使って、ドメイン管理権限や設定情報を確認するものです。
HTTPS通信のための暗号化証明書です。
両者は別物ですが、SSL証明書の発行時に、「このドメインを本当に管理しているか」を確認する方法のひとつとしてDNSが使われることがあります。
つまり、
という関係です。
DNS認証とは、DNSに登録した情報をもとに、ドメインの管理権限や設定の正当性を確認・検証する仕組みです。
主な用途は、
です。
特に覚えておきたいポイントは次の通りです。
DNS認証は一見地味ですが、Web運用・メール運用・ツール連携の土台になる非常に重要な設定です。
仕組みを理解しておくと、トラブル時の切り分けもしやすくなります。
以上、DNS認証とはなんなのかについてでした。
最後までお読みいただき、ありがとうございました。