通配符域名不同於一般的單域名證書. 為了解決之前一篇短文中通配域名通過DNS方式驗證的證書自動更新問題. 需要使用到第三方域名提供商的API, 用於自動添加域名的TXT記錄, 實現自動驗證並完成證書更新過程.
要求和適應性
- 要求了解 Let's encrypt 通配域名(二級, 三級)
- 使用 Cloudflare 的DNS解析服務
安裝插件
pip install certbot-dns-cloudflare
創建存儲API調用憑證的目錄
mkdir -p ~/.secrets/certbot
chmod 0700 ~/.secrets
# Cloudflare API 秘鑰
cat > ~/.secrets/certbot/cloudflare.ini <<END
dns_cloudflare_email = admin@example.com
dns_cloudflare_api_key = 1c6287abdc254293f3b4837ad871937ajfb81
END
# 修改文件權限
chmod 0400 ~/.secrets/certbot/cloudflare.ini
執行更新
certbot certonly -d '*.example.com' \
--agree-tos \
--email admin@example.com \
--server https://acme-v02.api.letsencrypt.org/directory \
--dns-cloudflare \
--dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \
--dns-cloudflare-propagation-seconds 30
--dns-cloudflare-propagation-seconds 30
表示等待30秒, 讓DNS完成傳播再發起驗證過程.
概要
通過提供 Cloudflare 的API秘鑰, certbot-dns-cloudflare 插件可以調用 Cloudflare 的 DNS 接口自動添加DNS驗證所需要的TXT記錄
自動化
為了自動化該過程, 需要編寫一個腳本放到Cron中定時執行.