本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
ACME 证书自动化
AWS Certificate Manager (ACM) 支持自动证书管理环境 (ACME) 协议,这是一种用于自动化证书颁发和生命周期管理的行业标准方法。借助 ACME 证书自动化,您可以为在客户管理的基础设施(例如本地服务器、Kubernetes 集群和混合环境)上运行的工作负载颁发公开信任的证书。
主题
什么是 ACME?
ACME 是 RFC 8555 中定义的互联网协议,它通过机器对机器的通信自动颁发证书。ACME 客户端不是手动请求证书,而是直接与 ACME 服务器通信以自动请求和获取证书。
诸如 Certbot 和 cert-manager 之类的 ACME 客户端已广泛使用,并可与许多应用程序平台集成。这些客户端负责整个证书生命周期,包括首次签发和到期前的续订。
ACME 如何与 ACM 配合使用
ACM 提供托管 ACME 服务器,您可以通过 ACME 端点访问该服务器。该架构分为两个平面:
-
控制平面:PKI 管理员使用 ACM API 创建 ACME 端点、配置域验证和生成外部账户绑定 (EAB) 凭证。
-
数据平面:ACME 客户端与 ACME 协议端点交互,为管理员已验证的域注册账户和请求证书。
与典型的公共 ACME 服务(客户端每次请求证书时都要证明域所有权)不同,ACM ACME 服务器使用管理员事先批准的域。这将控制端点可以为哪些域颁发的管理员与请求证书的应用程序所有者区分开来。有关更多信息,请参阅 ACME 域名验证。
通过 ACME 颁发的证书会收到标准 ACM ARN,并显示在您的 ACM 证书清单中。
ACME 证书特征
通过 ACME 颁发的证书是公开信任的 ACM 证书。它们与其他 ACM 公共证书共享相同的信任链、密钥算法和证书透明度日志。有关适用于所有 ACM 公有证书的特征的信息,请参阅AWS Certificate Manager 公共证书的特征和限制。
以下各节介绍了 ACME 证书与其他 ACM 公共证书的不同之处。
吊销
已吊销的端点实体证书使用 OCSP 和 CRL 来验证和发布吊销信息。某些客户防火墙可能需要额外的规则才能允许这些机制。
使用以下 URL 通配符模式来识别吊销流量:
-
OCSP
http://*.amazontrust.com -
CRL
http://*.amazontrust.com/*
如果需要更严格的规则,请访问 Amazon Trust Services 网站
证书有效期
ACME-issued 证书的有效期为 45 天,比其他 ACM 公共证书的有效期短。ACME 客户端自动续订证书这一事实抵消了这种较短的有效期。使用短期证书还可以为即将到来的行业变化做好准备,因为公共证书的最大有效期必须随着时间的推移而缩短,到2029年初将不超过47天。
使用 ACME-issued 证书
以下操作行为和限制适用于作为 ACM 资源的 ACME-issued证书:
-
私钥:私钥由 ACME 客户端生成和保存。ACM 从来没有看到私钥。
-
AWS 集成服务:无法绑定 ACME-issued 证书,通过集成服务实现托管自动化例如 Elastic Load Balancing CloudFront、或 API Gateway。在 ACME 客户端持有私钥的托管基础设施上使用证书。
-
续订:ACME 客户端在现有证书到期之前申请新证书。ACM 托管续订不适用。
-
撤销:撤销由 ACME 客户端通过 ACME 端点的 URL 启动。
revoke-cert -
删除:您可以通过调用删除过期的 ACME-issued 证书
DeleteCertificate。ACM 会在 ACME-issued 证书到期一年后自动删除证书。 -
密钥对来源:
CertificateKeyPairOrigin已ACME开DescribeCertificate启ListCertificates、和SearchCertificates响应。 -
证书不支持不支持的 ACM API:
ExportCertificateRevokeCertificateRenewCertificate、、和ResendValidationEmail。 ACME-issued生命周期由 ACME 客户端管理。
何时使用 ACME vs. RequestCertificate
使用以下指南来确定哪种证书颁发方法适合您的用例。
RequestCertificate 在以下情况下使用:
-
AWS 集成服务(Elastic Load Balancing、 CloudFront、API Gateway)需要证书。
-
您希望 ACM 管理私钥。
-
你想要 ACM 托管续订。
在以下情况下使用 ACME:
-
你想使用行业标准的 ACME 客户端(Certbot、证书管理器)。
-
您需要客户管理的基础架构(本地、Kubernetes、混合)的证书。
-
您需要不依赖 AWS 于 SDK 的自动化证书生命周期。
-
您必须将私钥保存在自己的系统上。例如,您可以直接在服务器上终止 TLS,或者可能需要满足合规性或监管要求,即私钥永远不会由第三方持有。
ACME 角色模型
ACME 证书自动化涉及两个角色:
- PKI 管理员
-
创建和管理 ACME 终端节点、配置域验证、创建外部账户绑定、控制哪些域可以颁发证书、设置 IAM 角色以及通过 CloudWatch 指标和 ACM 控制台监控证书颁发。
- 应用程序所有者
-
从管理员那里接收 EAB 凭证,使用 ACME 客户端申请证书,并在其系统上管理证书续订。
End-to-end 工作流程
以下步骤描述了 ACME 证书自动化的完整设置和使用流程:
-
PKI 管理员创建 ACME 端点并接收端点 URL。
-
管理员创建域验证以预先批准域名并配置所需的 CNAME 记录。
-
管理员创建外部帐户绑定以为 ACME 客户端生成凭据。
-
管理员将 EAB 凭证分发给应用程序所有者。
-
应用程序所有者使用 EAB 凭据配置 ACME 客户端,注册账户并申请证书。
-
已颁发的证书显示在 ACM 中,其中包含标准 ARN。
-
PKI 管理员通过 CloudWatch指标和 ACM 控制台的证书控制面板监控签发成功和失败。有关更多信息,请参阅 支持的 CloudWatch 指标。