個人的にもいろいろなところでお世話になっている無料のDDNS(Dynamic Domain Name Server)、MyDNSがLet’sEncryptのdns-01認証の自動化に対応したようです。
2018.07 Let’s Encrypt用API提供開始
Let’s Encryptで、DNS-01方式でサーバー証明書を取得する場合の、–manual-auth-hookならびに–manual-cleanup-hook用のスクリプトをGitHubに公開しました。
詳しくはREADMEをお読みいただければわかるかと思いますが、これによりワイルドカードのサーバー証明書の取得および更新が非常にしやすくなったかと思います。
どうぞご活用ください。
MyDNSとは、自宅サーバ勢御用達の無料DDNSホスティングサービス。
DNSホスティングとの違いは、定期的にサービスに対してIPアドレスを通知することにより、IP固定契約をしていなくても自分の回線とドメイン名を継続的に紐づけることを可能にしている点です。
管理画面からの変更もできますが、プログラムからも通知できるような仕組みを供えているので、cronなどを利用すれば特に操作しなくてもサーバーからMyDNSに対して継続的にIPアドレスを通知し続けることもできます。
一方Let’s Encyptは一定の条件を満たせば無料でSSL証明書を発行してもらうことができるサービス。
以前にも何度か取り上げていますし、ご存知の方も多いかと思いますが、最近はワイルドカード証明書の取り扱いも開始し、ドメインごとにSSL証明書を取得する必要がなくなりました。
ただし、このワイルドカード証明書をLet’s Encryptで取得するためには、DNSサーバの設定を操作して指定された値を登録することでドメインの所有権を確認する”dns-01″方式で認証する必要があります。
また、DNSサーバーに設定する値はドメインの更新時も変化するため、更新のたびにDNSサーバーの値を書き換える必要があり、Let’s Encryptの証明書期限も3か月しかないため、かなり大変でした。
今回、MyDNSが自動更新に対応したことにより、スクリプト一つで自動的にLet’sEncryptから指示された値を自動的にMyDNS側に登録することができるようになったため、一度成功させてしまえば以降はユーザーの操作が一切なくても継続的にワイルドカード証明書の取得、更新が可能となりました。
次回の記事で、実際の設定方法をご紹介したいと思います。
もし待てない、という方はMyDNSさんのGitHubリポジトリに方法が記載されていますので、そちらをご参照いただければと思います。