何番煎じの話なのかという気もするけど、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に移籍してもいいぐらい楽ちん。
