Let's Encrypt で DNS 認証を使って証明書を発行する
Let's Encrypt で証明書を取得する際は DNS に TXT レコードを書いて認証させることも可能です。 アプリケーションを Node.js でホストしており、certbot
に DocumentRoot に書き込みさせ、Let's Encrypt で認証させるのが難しい… と言ったケースでは DNS 認証が便利です。 今回は DNS 認証のやり方をメモしておきます。
まず、certbot-auto
をインストールします。
1 2 |
|
certbot-auto
を実行します。 email
には証明書の有効期限が近づいてきたときにリマインドするメールアドレス、domain
には証明したい FQDN を指定します。 HTTP 認証の場合は SAN(※ 複数の CommonName を証明する方式)が利用出来、domain
を複数指定出来るのですが、DNS 認証の場合は 1 ドメインごとに certbot-auto
を実行する必要があるようです。 尚、Let's Encrypt は Amazon Linux を正式にサポートしていませんが、debug
オプションを指定すれば実行することは可能です。
1 2 3 4 5 6 7 8 |
|
上記コマンドを実行すると DNS 認証を行う際に登録する TXT レコードと値が表示され、certbot-auto
が一時停止します。 DNS の該当ゾーン上に指定されたレコードを作成します。 レコードの作成が完了したら、Linux の CLI に戻り、certbot-auto
を継続します。 Let's Encrypt 側で該当の TXT レコードを上手く読み取れたら /etc/letsencrypt
配下に証明書や鍵が発行されているはずです。