使用 certbot+cloudflare 讓 wildcard certificate 自動更新憑證

下方使用 CentOS7 當作示範環境 如果你還沒裝 certbot,請先執行 yum install certbot

  1. 首先要先登入 Cloudflare,右上角 My Profile 那就可找到 Global API Key 請點選 View 輸入密碼就會出現,這把 Key 很重要請小心保管

api key

  1. 由於這把 Key 很重要,所以要放在一個安全的地方 原作者把它放在 /root/.secrets 裡面(你要改地方也行,最後的參數路徑記得改就好) 但系統預設沒有 /root/.secrets 這個目錄 所以要先建立這個目錄 mkdir /root/.secrets 然後把下面這兩行填好後放到 /root/.secrets/cloudflare.ini 裡面
dns_cloudflare_email = "請填你的cloudflare帳號,也就是email"
dns_cloudflare_api_key = "請輸入上述的 Global API Key"
  1. 修改 /root/.secrets/cloudflare.ini 權限
    chmod 0700 /root/.secrets/
    chmod 0400 /root/.secrets/cloudflare.ini
    
  2. 安裝 Certbot 及 CloudFlare DNS 認證套件
    yum install python-pip
    pip install certbot-dns-cloudflare
    
  3. 申請 Wildcard SSL 憑證 把 example.com 更換成自己的域名,如果有4級域名也要一起加入
    certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/.secrets/cloudflare.ini -d example.com,*.example.com --preferred-challenges dns-01
    
  4. 於 crontab 設定自動 renew
    • nginx
      14 5 * * * /usr/local/bin/certbot renew --quiet --post-hook "/usr/sbin/service nginx reload" > /dev/null 2>&1
      
    • apache
      14 5 * * * /usr/local/bin/certbot renew --quiet --post-hook "systemctl reload httpd" > /dev/null 2>&1
      

© 2018. All rights reserved.