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 でサービスを軽くリロード。
よく読まれている質問
- ACMEを使って、証明書を複数サーバーで自動更新できますか?
- OV証明書 自動化手順(ACME対応)
- ACMEで発行される証明書は、wwwあり・なし(2way/SANs)に対応していますか?...
- クロスサインが必要なのはどんな時ですか?また、利用者は何をすればよいのでしょうか?...
- DV証明書 自動化手順(ACME対応)
- win-acme(Windows IIS用)インストール&設定ガイド(FujiSSL ACME)
- FujiSSLは世界的CA「Sectigo」の中間認証局です
- ACMEプロトコルを利用した証明書自動化の場合、料金の支払い方法はどうなりますか?...
- ACMEで自動更新された証明書が正常に更新されているか、どのように確認できますか?...
- ACMEクライアントで、鍵生成から証明書のインストールまで対応できますか?...
- FujiSSLではどのACMEクライアントが使えますか?
- 2026年3月15日からSSL/TLS証明書の有効期間が200日に短縮されます
- クライアント証明書発行までの流れ
- どこのサーバでもSiteLockを利用できますか?
- ACMEで証明書を取得・更新するために、サーバー側で必要な要件は何ですか?...
- 社内ネットワークの制限(FW/プロキシ)で外部通信ができない場合、ACMEは利用できますか?...
- ロードバランサ配下の複数Webサーバー構成では、ACMEはどのように運用すればよいですか?...
- 1台で取得した証明書を他サーバーへ配布する場合、どのような方法がありますか?...
- 身に覚えのない11円の請求がありました。なぜですか?






