CertbotのDNSチャレンジは、サブドメインを含む複数ドメインにも対応できます。これにより、ワイルドカード証明書(例: *.example.com
)や、異なるドメインやサブドメインを対象にした証明書を取得することが可能です。
DNSチャレンジの概要
DNSチャレンジでは、対象ドメインのDNS設定に特定のTXTレコードを追加することで、ドメイン所有権を証明します。この方法は、以下のようなケースで特に便利です:
- サーバーが公開インターネットに接続されていない場合。
- ワイルドカード証明書(例:
*.example.com
)を取得する場合。 - 複数のドメインやサブドメイン(例:
example.com
とsub.example.com
)を同時に証明書に含めたい場合。
手順
1. Certbotのインストール
Certbotをインストールします(必要に応じてDNSプラグインもインストール)。
sudo apt update
sudo apt install certbot
2. 必要なプラグインのインストール
CertbotのDNSチャレンジは、DNSプロバイダーごとのプラグインを使用して自動化できます。以下は一例です:
- Cloudflare用:
python3-certbot-dns-cloudflare
- Route 53用:
python3-certbot-dns-route53
インストール例(Cloudflareの場合):
sudo apt install python3-certbot-dns-cloudflare
3. 証明書の取得
以下のコマンドを使用してDNSチャレンジを実行します。
基本的なDNSチャレンジ(手動モード):
sudo certbot certonly --manual --preferred-challenges dns -d example.com -d *.example.com
実行後、TXTレコードをDNSプロバイダーに手動で追加するよう指示が表示されます。
自動DNSチャレンジ(Cloudflareを使用する場合): Cloudflare APIの認証情報を設定ファイル(例: ~/.secrets/cloudflare.ini
)に保存して利用します。
sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials ~/.secrets/cloudflare.ini \
-d example.com \
-d *.example.com
4. 複数ドメインへの対応
複数のドメインやサブドメインを対象にする場合、-d
オプションを繰り返し指定します。
例:
sudo certbot certonly --manual --preferred-challenges dns \
-d example.com -d sub1.example.com -d sub2.example.com
注意点
- DNSレコードの伝播時間:
- DNSレコードを追加してから、設定が反映されるまでに数分から数時間かかることがあります。この間、CertbotはDNSレコードを検証するのを待つ状態になります。
- 自動更新の設定:
- 手動で設定した場合、自動更新のたびに新しいTXTレコードを設定する必要があります。
- 自動化を希望する場合は、DNSプロバイダー用のプラグインを使用するのがおすすめです。
- ワイルドカード証明書:
- ワイルドカード証明書(例:
*.example.com
)を取得する際は、DNSチャレンジが必須です。
- ワイルドカード証明書(例:
CertbotのDNSチャレンジを活用すれば、複雑な構成のドメインにも柔軟に対応可能です。特に自動化が必要な場合、DNSプロバイダーのAPIを活用すると便利です。
コメント