跳轉到主要內容

專案概述

本專案提供在 Synology NAS 上以 acme.sh 搭配 Cloudflare DNS-01 驗證申請及自動更新 Let’s Encrypt 萬用字元(wildcard)憑證的完整流程。整個過程不需對外開放 80 或 443 埠號,透過 Cloudflare API 完成 ACME 挑戰,並在憑證更新後自動部署至 DSM。

技術棧

  • acme.sh:ACME 協定客戶端,負責申請與更新憑證
  • Cloudflare DNS API:DNS-01 挑戰驗證(無需開放入站埠號)
  • Let’s Encrypt:免費 TLS 憑證授權機構
  • Synology DSM:目標部署平台
  • Shell (Bash):自動化腳本

功能特色

  • DNS-01 挑戰驗證,不需開放任何入站埠號
  • 萬用字元憑證(*.your-domain.com)一次涵蓋所有子網域
  • acme.sh cron 自動排程更新,憑證到期前自動續簽
  • 憑證更新後自動部署至 DSM 並重載服務
  • Cloudflare API Token 最小權限設定(僅 Zone DNS Edit)

快速開始

  1. 安裝 acme.sh
    curl https://get.acme.sh | sh
    
  2. 設定 Cloudflare API Token
    export CF_Token="your_cloudflare_api_token"
    export CF_Account_ID="your_account_id"
    
  3. 申請萬用字元憑證
    acme.sh --issue \
      --dns dns_cf \
      -d "your-domain.com" \
      -d "*.your-domain.com"
    
  4. 部署憑證至 DSM
    acme.sh --deploy \
      -d "your-domain.com" \
      --deploy-hook synology_dsm
    
Cloudflare API Token 請使用最小權限範圍:僅授予對應 Zone 的 DNS:Edit 權限,不要使用 Global API Key。

相關連結