跟傳統的 HTTPS-01 比起來
不需要連到網站
只需要在 DNS 紀錄聲明擁有這個特定網域
就可以簽名

安裝

sudo apt install python3-certbot-dns-cloudflare

步驟

  1. 去 Cloudflare 後台建立一個具有 Zone:DNS:Edit 權限的 API Token。

  2. 建立一個設定檔(例如 cloudflare.ini)填入 Token,然後執行指令

dns_cloudflare_api_token = <token>
  1. 指令
sudo certbot certonly \
  --dns-cloudflare \ #指定調 cloudflare DNS
  --dns-cloudflare-credentials ~/.secrets/cloudflare.ini \ #cloudflare token 位置
  -d monitor.你的網域.com \ #要簽的網域 可以很多個 每個都寫 -d 可以用 * 要加上主網域
  --dns-cloudflare-propagation-seconds 60 # 驗證時間 太短可能還沒更新上去就驗證 會失敗
  1. 設定 nginx
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

其他

  • 憑證重新載入得時候自動重啟 nginx
sudo certbot renew --deploy-hook "systemctl reload nginx"

—cert-name cheesege.com \

DNS-PERSIST-01