ssl / dns triage

新ドメインで証明書が出ない・名前が引けない|切り分けの手順と誤診の記録

新しく取ったドメインやサーバー移転の直後は、「サイトが開かない」「証明書の警告が出る」が重なります。原因は大きく4つ(委任・ゾーン・移転時の取りこぼし・https強制)に分かれ、見る場所がそれぞれ違います。この面は、実際に誤診したものを順に直した切り分けの手順です。

このサイトはAnthropicの公式サイトではありません。Claude Codeの機能・料金・提供範囲は変わる可能性があるため、重要な判断の前には公式のドキュメントと自分のアカウント設定を確認してください。

先に結論:症状から見る場所を決める表

症状まず疑うこと確かめる場所
名前が引けない(SERVFAIL)委任はあるが委任先がゾーンを持っていないレジストリ→委任先のNS→公開リゾルバの順
名前が引けない(NXDOMAIN)そもそも委任がないレジストラのNS設定
移転したのに旧サーバーに行くAAAA(IPv6)が旧サーバーのままIPv6でアクセスして、設定の差で判別
移転後に検索の登録が外れた所有権確認のTXTが消えた移転前に控えたゾーン全体との差
証明書が永久に出ないhttp→httpsの301が確認用の場所を巻き込んでいる確認用パスの除外規則
証明書は出ているが警告が出るSAN(対象名)が実ドメインを覆っていないCNではなくSANを読む

重要なのは、SERVFAILとNXDOMAINは意味が違うことです。前者は委任はあって先が答えていない状態、後者は委任そのものがない状態です。「まだ取っていない」「設定していない」と決める前に、どちらかを区別します。

読者が確かめる手順

A. 名前が引けないとき(3段)

  1. TLDのレジストリに委任先を聞く。nslookup -type=NS 自分のドメイン レジストリのNS。レジストリのNS名は、先にTLD自体のNSを調べて得ます。TLDの代表NSを直接指定すると、そのNS名が引けずに失敗することがあります。
  2. 委任先のNS名が引けるかを確かめる。nslookup -type=A 委任先のNS名 8.8.8.8。
  3. 委任先に、自分のドメインを直接聞く。正しいAを返せば伝播待ちだけです。拒否(Query refused)なら、そのNSはゾーンを持っていない可能性があります。タイムアウトならNSが落ちています。

ただし、拒否が出ても即断しないでください。次の記録のとおり、正常に配られていても拒否を返す場合があります。判定は公開リゾルバ(8.8.8.8や1.1.1.1)を正とし、拒否が数分たっても続くときに空ゾーンを疑います。

B. 移転するとき

  1. 移転前に、A・AAAA・MX・TXT・NS・CNAMEを、権威NSに直接聞いて全部控える。
  2. AだけでなくAAAAも新しい向き先に直す、またはなくす。
  3. レコード欄が丸ごと置換される画面では、書かなかったものが消える。所有権確認のTXTを必ず書き戻す。

C. 証明書が出ないとき

  1. 確認用のパス /.well-known/ が、https への301に巻き込まれていないか。canonicalの301より前に RewriteRule ^\.well-known/ - [L] を置く。
  2. 存在しない確認ファイルが301を返すのは正常な場合がある。実ファイルを置いて200が返るかで判定する。
  3. 証明書はCNではなくSANを読む。openssl s_client の出力を openssl x509 -noout -ext subjectAltName に渡す。
  4. DNSを向けたあとに、自動発行をもう一度起動する。ドメインを足した直後の自動発行は、DNSが旧サーバーを指していて失敗する。

実際に起きた記録

空のゾーンを「未登録」と誤診しかけた(2026年8月22日)

新しく取ったドメインが公開リゾルバでSERVFAILでした。レジストリに聞くと委任済みで、委任先に直接聞くと拒否が返りました。つまり「委任はあるがレコードが1件もない」状態でした。レジストラの設定画面でレコードを保存して直しました。同じ事業者でも、新しいドメインが別のNS群を向くことがあるので、稼働中のドメインと同じ群だと思い込まず、実際の委任先を見ます。

ttlを省くと200が返っても配られない(2026年8月23日)

レジストラのAPIでレコードを書いたら200が返りました。しかし引けませんでした。保存内容を読むと ttl: 0 でした。稼働中の兄弟ドメインはどれも3600です。ttlを明示して書き直すと、すぐに引けました。以後、道具はttlを必ず送ります。確かめるのは「保存内容のttlが3600か」と「公開リゾルバが答えるか」の2点です。

権威NSの拒否を、強く言いすぎた(2026年9月26日)

「権威NSは正常でも必ず拒否を返す」と書いたのは言い過ぎでした。書き込みの数分後には、直接聞いて正しいAが返りました。拒否が出るのは書き込み直後の数分か、ゾーンが空のときです。

道具の側の誤診

  • Windowsのnslookupは、失敗を SERVFAIL と書かず Server failed と出します。正規表現でSERVFAILを探すと1件も引っかからず、2026年8月22日の棚卸しで9件を誤分類しました。
  • 日本語環境のnslookupは見出し語だけが化けるため、Name: で探すと設定済みのAを「なし」と報告します。Address: などが残るので、そちらで読み、先頭ブロック(問い合わせ先自身)を捨てます。
  • Node の dns モジュールは、この環境でUDP/53が通らず、設定済みのレコードを空配列で返しました。エラーではないので気づけません。nslookupを子プロセスで呼びます。

期限の見張り

131ドメインのうち129が自動更新オフでした。1つ見落とすとサイトごと消えます。そこで、登録期限・証明書のSAN・証明書の残日数・HTTP到達性を毎朝検査する仕組みを2026年8月22日に作りました。初回で、証明書が実ドメインを覆っていないものが8件、名前が引けないものが9件ありました。HTTPだけ見ていては気づけないものです。移転や更新の検査は上げたあとに本番を読む手順と同じ考え方です。

よくある質問

SERVFAILが出たら、まず何をしますか。

レジストリに委任先を聞き、委任先のNSにドメインを直接聞きます。委任があるのに答えがなければ、ゾーン未作成を疑い、レジストラのレコード設定を保存し直します。

移転後、AAAAは消すべきですか。

新サーバーがIPv6で配信するなら新しい向き先へ、配信しないなら消します。旧サーバーのAAAAを残すと、IPv6で来るアクセスや検索ロボットが旧サーバーに行き続けます。

証明書の確認はブラウザの鍵マークで足りますか。

足りません。発行元と対象名はSANまで読みます。CNだけを見ると、別名のサブドメイン名が入っていて「出ている」と誤読します。

次に読むページ