本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
ACME 憑證自動化
AWS Certificate Manager (ACM) 支援自動化憑證管理環境 (ACME) 通訊協定,這是自動化憑證發行和生命週期管理的業界標準方法。透過 ACME 憑證自動化,您可以針對在內部部署伺服器、Kubernetes 叢集和混合環境等客戶受管基礎設施上執行的工作負載發行公開信任的憑證。
主題
什麼是 ACME?
ACME 是 RFC 8555 中定義的網際網路通訊協定,可透過machine-to-machine通訊自動發行憑證。ACME 用戶端不會手動請求,而是直接與 ACME 伺服器通訊,以自動請求和取得憑證。
Certbot 和 cert-manager 等 ACME 用戶端可廣泛使用並與許多應用程式平台整合。這些用戶端會處理整個憑證生命週期,包括初始發行和過期前續約。
ACME 如何與 ACM 搭配使用
ACM 提供您透過 ACME 端點存取的受管 ACME 伺服器。架構分為兩個平面:
-
控制平面:PKI 管理員使用 ACM APIs 建立 ACME 端點、設定網域驗證,以及產生外部帳戶繫結 (EAB) 憑證。
-
資料平面:ACME 用戶端會與 ACME 通訊協定端點互動,為管理員已驗證的網域註冊帳戶和請求憑證。
與一般公有 ACME 服務不同,用戶端會在每次請求憑證時證明網域擁有權,ACM ACME 伺服器會使用管理員事先核准的網域。這會將控制端點可以發行哪些網域的管理員與請求憑證的應用程式擁有者分開。如需詳細資訊,請參閱ACME 網域驗證。
透過 ACME 發行的憑證會收到標準 ACM ARNs,並出現在您的 ACM 憑證庫存中。
ACME 憑證特性
透過 ACME 發行的憑證是公有信任的 ACM 憑證。它們與其他 ACM 公有憑證共用相同的信任鏈、金鑰演算法和憑證透明度記錄。如需有關套用至所有 ACM 公有憑證之特性的資訊,請參閱 AWS Certificate Manager 公有憑證特性和限制。
下列各節說明 ACME 憑證與其他 ACM 公有憑證的差異。
撤銷
撤銷的最終實體憑證使用 OCSP 和 CRLs 來驗證和發佈撤銷資訊。有些客戶防火牆可能需要額外的規則,才能允許這些機制。
使用這些 URL 萬用字元模式來識別撤銷流量:
-
OCSP
http://*.amazontrust.com -
CRL
http://*.amazontrust.com/*
如果需要更嚴格的規則,請參閱 Amazon Trust Services 網站
憑證有效期間
ACME 發行憑證的有效期為 45 天,短於其他 ACM 公有憑證的有效期。此較短的有效性會受到 ACME 用戶端自動續約憑證的事實所抵銷。使用短期憑證也可讓您因應即將到來的產業變更,因為公有憑證最長有效期間必須隨著時間的推移而減少,且在 2029 年初不會超過 47 天。
使用 ACME 發行的憑證
下列操作行為和限制條件適用於 ACME 發行的憑證做為 ACM 資源:
-
私有金鑰:私有金鑰是由 ACME 用戶端產生和保留。ACM 永遠不會看到私有金鑰。
-
AWS 整合服務:ACME 發行的憑證無法繫結至 ,使用整合式服務的受管自動化例如 Elastic Load Balancing、CloudFront 或 API Gateway。在 ACME 用戶端持有私有金鑰的受管基礎設施上使用憑證。
-
續約:ACME 用戶端會在現有憑證過期之前請求新的憑證。ACM 受管續約不適用。
-
撤銷:撤銷是由 ACME 用戶端透過 ACME 端點的
revoke-certURL 啟動。 -
刪除:您可以透過呼叫 來刪除過期的 ACME 發行的憑證
DeleteCertificate。ACM 會在過期一年後自動移除 ACME 發行的憑證。 -
金鑰對原始伺服器:
CertificateKeyPairOriginACME位於DescribeCertificate、ListCertificates和SearchCertificates回應上。 -
不支援的 ACM APIs:
ExportCertificate、RenewCertificate、RevokeCertificate和ResendValidationEmail不支援 ACME 發行的憑證。生命週期由 ACME 用戶端管理。
何時使用 ACME 與 RequestCertificate
使用以下指引來判斷哪種憑證發行方法符合您的使用案例。
在下列情況下使用 RequestCertificate:
-
您需要 AWS 整合式服務的憑證 (Elastic Load Balancing、CloudFront、API Gateway)。
-
您希望 ACM 管理私有金鑰。
-
您想要 ACM 受管續約。
在以下情況使用 ACME:
-
您想要使用業界標準的 ACME 用戶端 (Certbot、cert-manager)。
-
您需要客戶受管基礎設施 (內部部署、Kubernetes、混合) 的憑證。
-
您需要沒有 AWS SDK 相依性的自動化憑證生命週期。
-
您必須在自己的系統上保留私有金鑰。例如,您可以在伺服器上直接終止 TLS,或者您可能需要滿足第三方從未持有私有金鑰的合規或法規要求。
ACME 角色模型
ACME 憑證自動化包含兩個角色:
- PKI 管理員
-
建立和管理 ACME 端點、設定網域驗證、建立外部帳戶繫結、控制哪些網域可以發行憑證、設定 IAM 角色,以及透過 CloudWatch 指標和 ACM 主控台監控憑證發行。
- 應用程式擁有者
-
從管理員接收 EAB 憑證、使用 ACME 用戶端請求憑證,以及在其系統上管理憑證續約。
端對端工作流程
下列步驟說明 ACME 憑證自動化的完整設定和使用流程:
-
PKI 管理員會建立 ACME 端點並接收端點 URL。
-
管理員會建立網域驗證來預先核准網域,並佈建必要的 CNAME 記錄。
-
管理員會建立外部帳戶繫結,以產生 ACME 用戶端的登入資料。
-
管理員會將 EAB 登入資料分發給應用程式擁有者。
-
應用程式擁有者會使用 EAB 登入資料設定 ACME 用戶端、註冊 帳戶,以及請求憑證。
-
發行的憑證會顯示在具有標準 ARNs 中。
-
PKI 管理員會透過 CloudWatch 指標和 ACM 主控台的憑證儀表板來監控發行成功和失敗。如需詳細資訊,請參閱支援的 CloudWatch 指標。