1. ooxif

    Posted

    ooxif
Changes in title
+certbot+certbot-dns-cloudflare でワイルドカード証明書を取得&自動更新する
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,39 @@
+# 1. `certbot` をインストール
+
+CentOS 7 なら epel にワイルドカード発行対応版 (v0.22) があるので、それをインストールする。
+
+> yum install --enablerepo=epel certbot
+
+# 2. `certbot-dns-cloudflare` プラグインをインストール
+
+ワイルドカードの発行、更新には DNS の TXT レコードを編集する必要がある。
+DNS 操作を自動化するため、 `certbot-dns-cloudflare` プラグインを導入する。
+
+> yum install --enablerepo=epel python2-certbot-dns-cloudflare
+
+`Global API Key` を https://www.cloudflare.com/a/profile から取得し、それを記した credentials ファイルを作成する。
+ここでは `/root/.cloudflare/credentials` に作成するものとする。
+
+> mkdir /root/.cloudflare
+> chmod 700 /root/.cloudflare
+> echo "dns_cloudflare_email = {ログインメールアドレス}" > /root/.cloudflare/credentials
+> echo "dns_cloudflare_api_key = {取得した API キー}" >> /root/.cloudflare/credentials
+> chmod 600 /root/.cloudflare/credentials
+
+# 3. 証明書を取得する。
+
+`example.com` と `*.example.com` の証明書を取得する場合、以下のようなコマンドになる。
+
+> certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/.cloudflare/credentials --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.com -d *.example.com
+
+DNS の変更が反映されるのを待つため、 60 秒 (`--dns-cloudflare-propagation-seconds`) ほど掛かる。
+
+取得が完了すると、 `/etc/letsencrypt/live/example.com` 以下に証明書が出力されている。
+
+# 4. 更新する。
+
+> certbot renew
+
+# 5. cron 設定例
+
+> echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew" > /etc/cron.d/certbot