目錄
ACME 協定是什麼?
ACME(Automated Certificate Management Environment,自動化證書管理環境)是一種由 IETF 制定的開放協議(RFC 8555),用於自動化 TLS/SSL 證書的申請、驗證、更新和撤銷流程。透過 ACME 協定,系統管理師無需手動操作即可實現證書的完全自動化管理,大幅降低人為錯誤和證書過期風險。
在現代網站架構中,ACME 自動化憑證更新已成為標準實踐,讓 HTTPS 加密變得更加普及和可靠。
ACME 制定的目的與背景
傳統證書管理的痛點
在 ACME 出現之前,SSL/TLS 證書管理存在諸多問題:
- 手動申請流程繁瑣:需透過網頁表單提交申請、驗證域名所有權
- 容易忘記續期:證書過期導致網站無法訪問,造成業務中斷
- 人為錯誤風險:手動操作可能導致證書配置錯誤或安全漏洞
- 規模化困難:管理數百個域名證書幾乎不可能
ACME 的解決方案
ACME 協議於 2015 年由 Let’s Encrypt 推動标准化,主要解決以下問題:
- 自動化驗證:透過 HTTP-01、DNS-01 等挑戰機制自動證明域名控制權
- 自動續期:客戶端可定時檢查並自動更新即將到期的證書
- 標準化接口:統一的 API 規範,不同 CA 和客戶端可互操作
- 降低門檻:讓 HTTPS 加密變得簡單、免費、普及
支援 ACME 的憑證授權機構
🆓 免費 ACME 服務商
| 供應商 | 證書有效期 | 特色 | ACME 端點 |
|---|---|---|---|
| Let's Encrypt | 90 天 | 最廣泛支援,非營利組織 | acme-v02.api.letsencrypt.org |
| ZeroSSL | 90 天 | 無速率限制,需註冊帳號 | acme.zerossl.com |
| BuyPass | 365 天 | 免費 1 年憑證,挪威供應商 | api.buypass.com |
| Google Trust Services | 90 天 | GCP 整合,需 EAB 金鑰 | dv.acme-v02.api.pki.goog |
💰 付費 ACME 服務商
| 供應商 | 證書類型 | 適用場景 |
|---|---|---|
| SSL.com | DV/OV/EV | 企業級自動化需求 |
| Sectigo | DV/OV/EV | 支援 InCommon 教育機構 |
| DigiCert | DV/OV/EV | CertCentral 平台整合 |
| GlobalSign | DV/OV/EV | 大型企業解決方案 |
| Entrust | OV/EV | 金融、政府機構 |
ACME 客戶端軟體比較
主流 ACME 客戶端
| 軟體名稱 | 語言 | 特色 | 支援 EAB |
|---|---|---|---|
| Certbot | Python | 最廣泛使用,官方推薦 | ✅ |
| acme.sh | Shell | 輕量級,純腳本實現 | ✅ |
| Win-ACME | .NET | Windows IIS 整合 | ✅ |
| Lego | Go | 開發者友好,API 完整 | ✅ |
| acme4j | Java | Java 應用整合 | ✅ |
Google Trust Services 特別要求
Google Public CA 要求 ACME 客戶端必須支援 EAB(External Account Binding) 功能,用於將 ACME 帳號綁定到 Google Cloud 專案。
支援 EAB 的客戶端:
- ✅ Certbot(推薦)
- ✅ acme.sh
- ✅ Lego
- ✅ 大多數現代 ACME 客戶端
不支援 EAB 的客戶端:
- ❌ 舊版 ACME 軟體
- ❌ 部分簡化版客戶端
Google Trust Services ACME 設定教學
前置準備
# 1. 安裝 gcloud CLI
gcloud init
# 2. 建立或選擇專案
gcloud projects create your-project-id
gcloud config set project your-project-id
# 3. 授予 IAM 權限
gcloud projects add-iam-policy-binding your-project-id \
--member=user:[email protected] \
--role=roles/publicca.externalAccountKeyCreator
# 4. 啟用 Public CA API
gcloud services enable publicca.googleapis.com
申請 EAB 金鑰
# 生成 EAB Key ID 和 HMAC Key
gcloud publicca external-account-keys create
回應包含:
keyId→ EAB_KIDb64MacKey→ EAB_HMAC_KEY
⚠️ 注意:EAB 金鑰有效期僅 7 天,需在此期限內完成帳號註冊
使用 Certbot 註冊帳號
certbot register \
--email "[email protected]" \
--no-eff-email \
--server "https://dv.acme-v02.api.pki.goog/directory" \
--eab-kid "YOUR_EAB_KID" \
--eab-hmac-key "YOUR_EAB_HMAC_KEY"
申請證書(DNS-01 挑戰)
certbot certonly \
--manual \
--preferred-challenges "dns-01" \
--server "https://dv.acme-v02.api.pki.goog/directory" \
--domains "example.com,www.example.com"
自動化續期設定
# 加入 crontab(每 60 天自動續期)
0 0 1,15 * * certbot renew --quiet
ACME 自動化更新優勢
🎯 核心優勢
- 零停機更新:證書在背景自動更新,無需中斷服務
- 降低人力成本:無需手動跟蹤證書到期日
- 提升安全性:縮短證書有效期,減少洩漏風險
- 規模化支援:可同時管理數千個域名證書
📊 與傳統流程比較
| 項目 | 傳統手動流程 | ACME 自動化 |
|---|---|---|
| 申請時間 | 30-60 分鐘/證書 | 1-2 分鐘/證書 |
| 續期提醒 | 需自行追蹤 | 自動檢查 |
| 人為錯誤 | 高風險 | 幾乎為零 |
| 證書有效期 | 1-2 年 | 90 天(更安全) |
| 管理成本 | 高 | 極低 |
🔒 安全最佳實踐
- 使用 DNS-01 挑戰:適合通配符證書和自動化部署
- 定期輪替 EAB 金鑰:建議每 90 天重新生成
- 監控證書狀態:設定失敗通知機制
- 測試環境驗證:先使用 Staging 端點測試流程
結語
ACME 協議徹底改變了 SSL/TLS 證書的管理方式,讓 HTTPS 加密變得更加普及和安全。無論您是管理單一網站還是大型企業基礎設施,採用 ACME 自動化更新都能顯著降低運維負擔並提升安全水準。
Google Trust Services 等現代 CA 提供免費且可靠的 ACME 服務,配合 Certbot 等成熟客戶端,讓證書管理變得前所未有的簡單。
作者:LinkPortal 編輯團隊
分類:資訊安全
更新日期:2026-05-12