本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS Certificate Manager 中的私有证书续订
由 AWS 私有 CA 中的私有 CA 签名的 ACM 证书符合条件进行托管续订。与公开受信任 ACM 证书不同,私有 PKI 的证书不需要验证。当管理员在客户端信任存储区中安装相应的根 CA 证书时,就会建立信任。
注意
只有使用 ACM 控制台或 RequestCertificate ACM API 操作获得的证书才符合托管续订条件。使用 IssueCertificate AWS 私有 CA API 操作直接从 AWS 私有 CA 颁发的证书不由 ACM 管理。
当托管式证书还剩 60 天过期时,ACM 会自动尝试续订。这包括手动导出和安装的证书(例如,在本地数据中心中)。客户也可以随时使用 RenewCertificate ACM API 操作强制续订。有关强制续订的 Java 实现示例,请参阅 续订证书。
续订后,证书部署到服务的方式有如下几种:
-
如果证书与 ACM 集成服务关联,则新证书将替换旧证书,而无需额外的客户操作。
-
如果证书不与 ACM 集成服务关联,则需要客户操作才能导出并安装续订的证书。您可以手动执行这些操作,或借助 AWS Health、Amazon EventBridge 和 AWS Lambda 执行,如下所示:有关更多信息,请参阅 自动导出已续订的证书
自动导出已续订的证书
以下过程提供了一个示例解决方案,用于在 ACM 续订私有 PKI 证书时自动导出这些证书。此示例仅从 ACM 中导出证书及其私有密钥;导出后,证书仍必须安装在其目标设备上。
使用控制台自动导出证书
-
按照《AWS Lambda 开发人员指南》中的步骤操作,创建并配置调用 ACM 导出 API 的 Lambda 函数。
-
为您的函数创建一个 Lambda 执行角色并添加以下信任策略。该策略将向函数中的代码授予调用 ACM API 的 ExportCertificate 操作,从而检索已续订的证书和私有密钥的权限。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"acm:ExportCertificate", "Resource":"*" } ] }
-
在 Amazon EventBridge 中创建一条规则以侦听 ACM 运行状况事件,并在检测到相关事件时调用您的 Lambda 函数。ACM 每次尝试续订证书时都写入一个 AWS Health 事件。有关这些通知的更多信息,请参阅 使用 Personal Health Dashboard (PHD) 检查状态。
通过添加以下事件模式来配置规则。
{ "source":[ "aws.health" ], "detail-type":[ "AWS Health Event" ], "detail":{ "service":[ "ACM" ], "eventTypeCategory":[ "scheduledChange" ], "eventTypeCode":[ "AWS_ACM_RENEWAL_STATE_CHANGE" ] }, "resources":[ "arn:aws:acm:region:account:certificate/certificate_ID" ] }
-
通过在目标系统上手动安装证书来完成续订过程。
测试私有 PKI 证书的托管式续订
您可以使用 ACM API 或 AWS CLI 手动测试 ACM 托管续订工作流的配置。通过这样做,您可以确认您的证书将在过期前由 ACM 自动续订。
注意
您只能测试由 AWS 私有 CA 颁发和导出的证书的续订。
当您使用下面描述的 API 操作或 CLI 命令时,ACM 会尝试续订证书。如果续订成功,ACM 会更新管理控制台或 API 输出中显示的证书元数据。如果证书与 ACM 集成服务关联,则会部署新证书并在 Amazon CloudWatch Events 中生成续订事件。如果续订失败,ACM 将返回错误并建议采取补救措施。(您可以使用 describe-certificate 命令查看此信息。) 如果证书不是通过集成服务部署的,您仍然需要将其导出并手动将其安装到资源上。
重要
要使用 ACM 续订您的 AWS 私有 CA 证书,您必须先向 ACM 服务主体授予执行此操作的权限。有关更多信息,请参阅将证书续订权限分配给 ACM。
手动测试证书续订 (AWS CLI)
-
使用 renew-certificate 证书续订导出的私有证书。
aws acm renew-certificate \ --certificate-arn arn:aws:acm:
region
:account
:certificate/certificate_ID
-
然后,使用 describe-certificate 命令确认已更新该证书的续订详细信息。
aws acm describe-certificate \ --certificate-arn arn:aws:acm:
region
:account
:certificate/certificate_ID
手动测试证书续订 (ACM API)
-
发送 RenewCertificate 请求,并指定要续订的私有证书的 ARN。然后,使用 DescribeCertificate 操作来确认已更新该证书的续订详细信息。