何番煎じの話なのかという気もするけど、certbot
をサーバーにインストールして更新を行う方法ばかりなので、直接dockerコマンドで実行する方法をまとめてみた。
CertbotのCloudflareプラグイン
利用するのは、Certbotが提供する公式イメージ
certbot/dns-cloudflare - Docker Hub
dockerコマンドさえ使えればインストールもしないで使えます。下記のコマンドで動作確認
1 | docker pull certbot/dns-cloudflare |
ワイルドカード証明書更新手順
Cloudflareのプラグインドキュメント。なんというかとても簡素…
certbot-dns-cloudflare 0 documentation
cloudflare.iniの作成
API KEYはCloudflareのアカウントページから取得する。下記の内容でiniファイルを作成
1 | dns_cloudflare_email = [email protected] |
今回の例では、このファイルを/etc/cloudflare/cloudflare.ini
に保存します。ファイルパーミッションは600にしましょう。
更新コマンド
更新
とはいうものの、ワイルドカード証明書は更新コマンドがないので、毎回新規で取り直します。コマンドを実行する側は特に意識することはないです。
1 | docker run -it --rm \ |
コマンド解説
- 2〜3行目
ローカルに証明書を保存するためのディレクトリ共有 - 4行目
ローカルに配置したcloudflare.ini
をcertbotに読み取らせるためのディレクトリ共有 - 5行目
certbotがDNS認証を行う際に使うDNSサーバーを指定 - 6行目
実行するイメージ名の指定と実行コマンド - 7行目
証明書を取得するドメイン名 - 8行目
cloudflareプラグインを利用することをオプションで明示。 - 9行目
4行目で共有した設定ファイルを指定。 - 10行目
DNS設定後に反映待ちを行うタイムアウト時間設定。
まとめ
DNSにCloudflareを使っていることが条件にはなりますが、とてもお手軽で便利です。Let’s Encryptを使っているなら、このためだけにCloudflareに移籍してもいいぐらい楽ちん。