

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 私有证书续订于 AWS Certificate Manager
<a name="renew-private-cert"></a>

由来自的私有 CA 签署的 ACM 证书 AWS 私有 CA 有资格进行托管续订。与公开受信任 ACM 证书不同，私有 PKI 的证书不需要验证。当管理员在客户端信任存储区中安装相应的根 CA 证书时，就会建立信任。

**注意**  
只有使用 ACM 控制台或 ACM API 的 [RequestCertificate](https://docs.aws.amazon.com/acm/latest/APIReference/API-RequestCertificate.html) 操作获得的证书才符合托管续订条件。 AWS 私有 CA 使用 AWS 私有 CA API 的[IssueCertificate](https://docs.aws.amazon.com/acm/latest/APIReference/API_IssueCertificate.html)操作直接颁发的证书不由 ACM 管理。

当托管式证书还剩 60 天过期时，ACM 会自动尝试续订。这包括手动导出和安装的证书（例如，在本地数据中心中）。客户也可以随时使用 ACM API 的 [RenewCertificate](https://docs.aws.amazon.com/acm/latest/APIReference/API_RenewCertificate.html) 操作强制续订。有关强制续订的 Java 实现示例，请参阅 [续订证书](sdk-renew.md)。

续订后，证书部署到服务的方式有如下几种：
+ 如果证书**与** ACM [集成服务](https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html)关联，则新证书将替换旧证书，而无需额外的客户操作。
+ 如果证书**不与** ACM [集成服务](https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html)关联，则需要客户操作才能导出并安装续订的证书。您可以手动执行这些操作，也可以在 [Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/) 的[AWS Health](https://docs.aws.amazon.com/health/latest/ug/)帮助下执行这些操作 EventBridge，[AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/getting-started.html)如下所示。有关更多信息，请参阅 [自动导出已续订的证书](#automating-export)。

## 自动导出已续订的证书
<a name="automating-export"></a>

以下过程提供了一个示例解决方案，用于在 ACM 续订私有 PKI 证书时自动导出这些证书。此示例仅从 ACM 中导出证书及其私有密钥；导出后，证书仍必须安装在其目标设备上。

**使用控制台自动导出证书**

1. 按照《 AWS Lambda 开发者指南》中的步骤，创建和配置一个调用 ACM 导出 API 的 Lambda 函数。

   1. [创建一个 Lambda 函数](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html)。

   1. 为您的函数[创建一个 Lambda 执行角色](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html)并添加以下信任策略。该策略允许函数中的代码通过调用 ACM API 的[ExportCertificate](https://docs.aws.amazon.com/acm/latest/APIReference/API_ExportCertificate.html)操作来检索续订的证书和私钥。

------
#### [ JSON ]

****  

      ```
      {
         "Version":"2012-10-17",		 	 	 
         "Statement":[
            {
               "Effect":"Allow",
               "Action":"acm:ExportCertificate",
               "Resource":"*"
            }
         ]
      }
      ```

------

1.  

   [在 Amazon 中创建规则 EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html)，用于监听 ACM 运行状况事件，并在检测到 Lambda 函数时调用该函数。ACM 每次尝试续订证书时都会写入 AWS Health 事件。有关这些通知的更多信息，请参阅 [使用 Personal Health Dashboard (PHD) 检查状态](check-certificate-renewal-status.md#check-renewal-status-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"
      ]
   }
   ```

1. 通过在目标系统上手动安装证书来完成续订过程。

## 测试私有 PKI 证书的托管式续订
<a name="manual-renewal"></a>

您可以使用 ACM API 或 AWS CLI 手动测试 ACM 托管续订工作流程的配置。通过这样做，您可以确认您的证书将在过期前由 ACM 自动续订。

**注意**  
您只能测试由 AWS 私有 CA颁发和导出的证书的续订。

当您使用下面描述的 API 操作或 CLI 命令时，ACM 会尝试续订证书。如果续订成功，ACM 会更新管理控制台或 API 输出中显示的证书元数据。如果证书与 ACM [集成服务](https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html)相关联，则会部署新证书，并在 Amazon Events 中生成续订 CloudWatch 事件。如果续订失败，ACM 将返回错误并建议采取补救措施。（您可以使用 [describe-certificate](https://docs.aws.amazon.com/cli/latest/reference/acm/describe-certificate.html) 命令查看此信息。） 如果证书不是通过集成服务部署的，您仍然需要将其导出并手动将其安装到资源上。

**重要**  
要使用 ACM 续订 AWS 私有 CA 证书，必须先向 ACM 服务主体授予执行此操作的权限。有关更多信息，请参阅[将证书续订权限分配给 ACM](https://docs.aws.amazon.com/privateca/latest/userguide/assign-permissions.html#PcaPermissions)。

**手动测试证书续订 (AWS CLI)**

1. 使用 [renew-certificate](https://docs.aws.amazon.com/cli/latest/reference/acm/renew-certificate.html) 证书续订导出的私有证书。

   ```
   aws acm renew-certificate \
   	--certificate-arn arn:aws:acm:region:account:certificate/certificate_ID
   ```

1. 然后，使用 [describe-certificate](https://docs.aws.amazon.com/cli/latest/reference/acm/describe-certificate.html) 命令确认已更新该证书的续订详细信息。

   ```
   aws acm describe-certificate \
   	--certificate-arn arn:aws:acm:region:account:certificate/certificate_ID
   ```

**手动测试证书续订 (ACM API)**
+ 发送[RenewCertificate](https://docs.aws.amazon.com/acm/latest/APIReference/API_RenewCertificate.html)请求，指定要续订的私有证书的 ARN。然后使用该[DescribeCertificate](https://docs.aws.amazon.com/acm/latest/APIReference/API_DescribeCertificate.html)操作确认证书的续订详细信息已更新。