概要
Let’s Encryptは、WebサーバでHTTPS通信をする際に使うことが多いと思います。
しかし、SSL証明書は必ずしもWebサーバのみで使われるわけではありません。
そのため、証明書を取得するためだけにWebサーバを起動している人もいるかもしれませんが、今ではWebサーバを使わずにDNSを使ってLet’s Encryptの証明書を取得する方法があります。
ここでは、DNSを使った証明書の取得方法を紹介します。
方法
まず、Let’s Encryptを使うための実行ファイルをダウンロードして配置します。
sudo curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto
apt-getやyumで手に入るものでは、DNSでの認証をできない場合があるので、ダウンロードしてきた方がいいです。
次のコマンドで認証を開始します。
certbot-auto certonly --manual --preferred-challenges dns --domain example.com
example.comのところは、適切な値に書き換えてください。
コマンドを実行すると、利用規約の同意などを求められるので、同意できるのであれば適当な入力をして進めてください。
進めていくと、次のように表示されます。
Please deploy a DNS TXT record under the name
_acme-challenge.example.com with the following value:
Before continuing, verify the record is deployed.
——————————————————————————
Press Enter to Continue
_acme-challenge.example.com
という部分と*************************************
の部分があります。*************************************
は、セキュリティのために伏せています。
これは、_acme-challenge.example.com
にTXTレコードとして*************************************
を設定しなさいということを表しています。
なので、DNSを変更しましょう。
DNSの変更が終わったら、dig _acme-challenge.example.com txt
コマンドなどでDNSが反映されたことを確認したら、エンターキーを押して認証を進めましょう。
もし失敗したら、もう一度やり直しましょう。
成功したら、/etc/letsencrypt/live/
以下のドメイン名のディレクトリに証明書があるはずです。
さいごに
DNSでも証明書が取得できるのであれば、ロードバランサに証明書を配置したいような場合でも、わざわざロードバランサを止めたりすることなくできるので便利です。
積極的に使用したいです。