DNS 設定ガイド(HTTP-01 / DNS-01 共通)
2025年10月14日
Contents
DNS 設定ガイド(HTTP-01 / DNS-01 共通)
要点(まずここだけ)
- HTTP-01 を使うなら、発行対象の FQDN が 発行を実行するサーバに向くように
A/AAAAを設定し、80/TCP を外部公開します(CDN/リバプロ経由の場合はチャレンジを素通し)。 - DNS-01 を使うなら、FQDNごとに TXT レコード
_acme-challenge.<FQDN>を作成(ワイルドカード*.example.comも_acme-challenge.example.com)。 - 伝播チェックは
dig/nslookupで 権威サーバ以外(8.8.8.8 など)を引いて確認。 - CAA をカスタムで入れている場合のみ、使用する CA を許可する必要があります(CAA 未設定なら何も不要)。
A. HTTP-01 を使う場合(もっとも簡単)
1) A/AAAA レコードを発行サーバへ向ける
- 例:
example.com → 203.0.113.10(A)/2001:db8::10(AAAA) www.example.comはexample.comの CNAME 推奨(管理が楽)。- 発行は対象 FQDN で行う必要があります。別ホストに向けたままだと HTTP-01 は失敗します。
2) CDN / リバースプロキシを使っている場合
- Cloudflare 等の CDN を使うなら、発行中は「DNS only(灰色雲)」に切替えるか、下記のパスを キャッシュ無効 & オリジン直通にします:
/.well-known/acme-challenge/ - NGINX リバプロの例(素通し設定):
location ^~ /.well-known/acme-challenge/ {
proxy_pass http://127.0.0.1:8080; # Webroot/アプリ側に転送
proxy_set_header Host $host;
add_header Cache-Control "no-store";
}
3) よくあるつまずき
- 80 番ポートが閉じている/別サービスが占有。
- WAF/Rewrite が
/.well-known/acme-challenge/を 301/302 で別ドメインへ飛ばす(NG)。 - CDN がチャレンジレスポンスを キャッシュしてしまい更新に追従しない。
B. DNS-01 を使う場合(ワイルドカード/背後が複雑なとき)
1) 手動で TXT を作る(まずは試運用に最適)
-
Certbot を 手動DNS で実行し、表示された値を控えます:
certbot certonly \
--manual --preferred-challenges dns \
--server 管理画面で取得したACMEサーバURL \
-d example.com -d *.example.com \
-m admin@example.com --agree-tos --no-eff-email \
--manual-public-ip-logging-ok
# 画面の指示に従い、TXT を作成して Enter
-
DNS に TXT を追加:
_acme-challenge.example.com→"(Certbot が表示した値)" -
伝播チェック(どこからも見えること):
dig +short TXT _acme-challenge.example.com @8.8.8.8
nslookup -type=TXT _acme-challenge.example.com 1.1.1.1
- ワイルドカード
*.example.comも 同じホスト名(_acme-challenge.example.com)。 - 複数 SAN を同時に発行する場合、複数の TXT が必要になることがあります(値を全部残す)。
- TTL は 60〜300 秒程度が運用しやすいです。
2) 自動化(API プラグイン推奨)
- Cloudflare:
sudo apt install -y python3-certbot-dns-cloudflare
cat > ~/.secrets/cf.ini <<'EOF'
dns_cloudflare_api_token = <CF_API_TOKEN>
EOF
chmod 600 ~/.secrets/cf.ini
certbot certonly \
--dns-cloudflare --dns-cloudflare-credentials ~/.secrets/cf.ini \
--server 管理画面で取得したACMEサーバURL \
-d example.com -d *.example.com
- AWS Route53:
sudo apt install -y python3-certbot-dns-route53
# 実行環境に適切な IAM 権限(route53:ChangeResourceRecordSets 等)を付与
certbot certonly \
--dns-route53 \
--server 管理画面で取得したACMEサーバURL \
-d example.com -d *.example.com
3) よくあるつまずき
- TXT 値の余計な引用符/スペース(コピペ時に混入)。
- サブドメインが別ゾーンに委任されていて、親側にだけ追加している(無効)。
- レコード名の打ち間違い:
_acme-challengeの前にドットを入れてしまう等。
C. CAA レコード(任意・設定している場合のみ)
CAA を 独自に運用している場合は、使用する認証局(CA)を許可してください。CAA を設定していない場合は、この作業は不要です。
- 例:
example.com. IN CAA 0 issue "ca.example" - ワイルドカードを発行する場合は
issuewildを使います。 - CAA を誤設定すると 認証不可 になり発行が失敗します。不明な場合は CAA を一旦削除して検証してください。
- 参考リンク:CAAレコードの設定例
D. ヘルスチェックと運用小技
- 発行直前に FQDN の解決先を確認:
dig +short A example.com/AAAA - HTTP-01 の疎通確認:
curl -I http://example.com/.well-known/acme-challenge/test(200/404 が返るか、CDN がリダイレクト地獄になっていないか) - DNS-01 の伝播観測:8.8.8.8 / 1.1.1.1 / 9.9.9.9 を使い分けて確認。
- TTL は短め(60〜300)にしておくとトラブル時の復旧が早い。
- 自動更新(
renew)は 深夜帯に実行し、deploy-hook でサービスを軽くリロード。
よく読まれている質問
- OV証明書 自動化手順(ACME対応)
- クロスサインが必要なのはどんな時ですか?また、利用者は何をすればよいのでしょうか?...
- DV証明書 自動化手順(ACME対応)
- Certbot インストール&設定ガイド(FujiSSL ACME)
- cert-manager 導入&設定ガイド(FujiSSL ACME)
- acme.sh インストール&設定ガイド(FujiSSL ACME)
- win-acme(Windows IIS)
- DNS 設定ガイド(HTTP-01 / DNS-01 共通)
- lego インストール&設定ガイド(FujiSSL ACME)
- 審査状況の確認
- 申請から発行までの間、どのようなメールが届きますか
- テスト証明書は発行していますか
- ファイル認証のクローラーのIPアドレスを教えてください
- FujiSSLは世界的CA「Sectigo」の中間認証局です
- FujiSSLのクーポンの有効期限はありますか?
- FujiSSLではどのACMEクライアントが使えますか?
- 身に覚えのない11円の請求がありました。なぜですか?
- 複数年プランについて
- キャンセルしたいのですが、返金はどのようにされますか。
- クライアント証明書発行までの流れ






