專案概述
本專案提供在 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)
快速開始
-
安裝 acme.sh
curl https://get.acme.sh | sh
-
設定 Cloudflare API Token
export CF_Token="your_cloudflare_api_token"
export CF_Account_ID="your_account_id"
-
申請萬用字元憑證
acme.sh --issue \
--dns dns_cf \
-d "your-domain.com" \
-d "*.your-domain.com"
-
部署憑證至 DSM
acme.sh --deploy \
-d "your-domain.com" \
--deploy-hook synology_dsm
Cloudflare API Token 請使用最小權限範圍:僅授予對應 Zone 的 DNS:Edit 權限,不要使用 Global API Key。
相關連結