Cloudflareで管理しているサーバーから、CertbotでSSL証明書を取る

2025/02/08に公開

Cloudflareで管理していて、CDNの恩恵を受けるためにProxiedにしているサーバーから、Certbotを動かしたい時もあると思います。

CertbotとCloudflareプラグインをインストールします。

sudo snap install certbot --classic
sudo snap set certbot trust-plugin-with-root=ok
sudo snap install certbot-dns-cloudflare

CloudflareのAPIトークンを作成しておきます。権限はEdit zone DNSのみとします。

Certbot用の設定ファイルを作成します。

dns_cloudflare_api_token = CLOUDFLARE_API_TOKEN

証明書を取得します。/etc/letsencrypt/live/{ドメイン名}以下に証明書が保存されるので、あとはいつも通りにWebサーバーの設定をしましょう。Cloudflareとオリジン間の通信がSSL化できます。

certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials /home/ubuntu/certbot/cloudflare.ini \
  -d example.com

Discussion