

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

# 中的托管证书续订 Amazon Certificate Manager
托管证书续订

ACM 为您亚马逊 SSL/TLS 颁发的证书提供托管续订。这意味着 ACM 将自动续订您的证书（如果您使用 DNS 验证），或者在接近过期时向您发送电子邮件通知。对于公有和私有 ACM 证书，都提供这些服务。

证书可自动续订，但需注意以下几点：
+ 如果与其他 Amazon 服务（例如 Elastic Load Balancing 或）相关联，则符合资格 CloudFront。
+ 如果它是自颁发或上次续订后导出的，则符合条件。
+ 如果它是通过调用 ACM [RequestCertificate](https://docs.amazonaws.cn/acm/latest/APIReference/API_RequestCertificate.html) API 颁发*然后*导出，或者是与其他 Amazon 服务关联的私有证书，则符合条件。
+ 如果它是通过[管理控制台](gs-acm-request-private.md)颁发*然后*导出，或者是与其他 Amazon 服务关联的私有证书，则符合条件。
+ 如果它是通过调用 Amazon 私有 CA [IssueCertificate](https://docs.amazonaws.cn/privateca/latest/APIReference/API_IssueCertificate.html)API 颁发的私有证书，则不符合资格。
+ 如果是[导入](import-certificate.md)的证书，则不符合条件。
+ 如果已过期，则不符合条件。

此外，还必须满足以下与[国际化域名](https://www.icann.org/resources/pages/idn-2012-02-25-en)有关的 [Punycode](https://datatracker.ietf.org/doc/html/rfc3492) 要求：

1. 以“<character><character>--”模式开头的域名必须与“xn--”一致。

1. 以“xn--”开头的域名也必须是有效的国际化域名。


**Punycode 示例**  

|  域名  |  满足条件 1  |  满足条件 2  |  允许  |  备注  | 
| --- | --- | --- | --- | --- | 
|  example.com  |  不适用  |  不适用  |  ✓  |  不是以“<character><character>--”开头  | 
|  a--example.com  |  不适用  |  不适用  |  ✓  |  不是以“<character><character>--”开头  | 
|  abc--example.com  |  不适用  |  不适用  |  ✓  |  不是以“<character><character>--”开头  | 
|  xn--xyz.com  |  支持  |  是  |  ✓  |  有效的国际化域名（解析为简.com）  | 
|  xn--example.com  |  是  |  否  |  ✗  |  不是有效的国际化域名  | 
|  ab--example.com  |  否  |  否  |  ✗  |  必须以“xn--”开头  | 

当 ACM 续订证书时，证书的 Amazon Resource Name (ARN) 保持不变。此外，ACM 证书是[区域性资源](acm-overview.md#acm-regions)。如果您在多个 Amazon 区域拥有同一个域名的证书，则每个证书都必须单独续订。

**Topics**
+ [

# 续订 ACM 公有证书
](renew-publicly-trusted.md)
+ [

# 私有证书续订于 Amazon Certificate Manager
](renew-private-cert.md)
+ [

# 检查证书的续订状态
](check-certificate-renewal-status.md)

# 续订 ACM 公有证书
公有证书

在颁发受管理的公开信任证书时， Amazon Certificate Manager 需要您证明自己是域名所有者。这可以通过 [DNS 验证](dns-validation.md)或[电子邮件验证](email-validation.md)的方式进行。当证书需要续订时，ACM 会使用您之前选择的相同方法来重新验证您的所有权。以下主题说明了续订过程在各种情况下的工作机制。

**Topics**
+ [

# 续订通过 DNS 验证的域
](dns-renewal-validation.md)
+ [

# 续订使用电子邮件验证的域
](email-renewal-validation.md)
+ [

# 续订通过 HTTP 验证的域
](http-renewal-validation.md)

# 续订通过 DNS 验证的域
DNS 验证的域

对于最初使用 [DNS 验证](dns-validation.md)颁发的 ACM 证书，托管续订是完全自动化的。

在到期前 45 天，ACM 会检查以下续订标准：

**注意**  
之前签发的有效期为 395 天的证书将在到期前 60 天续期，续订有效期为 198 天。有效期为 198 天的证书将在到期前 45 天续期。
+ 该证书目前正由某项 Amazon 服务使用。
+ ACM 提供的所有必需 DNS CNAME 记录（每个唯一的主题备用名称一个）都存在并可以通过公共 DNS 访问。

如果满足这些条件，ACM 将认为域名已通过验证并续订证书。

如果 ACM 在续订期间无法自动验证域名，则会发送 Amazon Health EventBridge 事件和 Amazon 事件。这些事件在到期前 30 天、15 天、7 天、3 天和 1 天发送。有关更多信息，请参阅 [亚马逊对 ACM 的 EventBridge 支持](supported-events.md)。

# 续订使用电子邮件验证的域
电子邮件验证的域

ACM 证书的有效期为 198 天。续订证书需要域所有者执行操作。ACM 会在证书到期前 45 天开始向与该域关联的电子邮件地址发送续订通知。该通知会包含一个链接，域所有者可以单击该链接进行续订。验证所有列出的域后，ACM 会颁发具有相同 ARN 的续订证书。

如果 ACM 在续订期间无法自动验证域名，则会发送 Amazon Health EventBridge 事件和 Amazon 事件。这些事件在到期前 30 天、15 天、7 天、3 天和 1 天发送。有关更多信息，请参阅 [亚马逊对 ACM 的 EventBridge 支持](supported-events.md)。

有关验证电子邮件的更多信息，请参阅[Amazon Certificate Manager 电子邮件验证](email-validation.md)。

要了解如何以编程方式回复验证电子邮件，请参阅[自动验证 Amazon Certificate Manager 电子邮件](email-automation.md)。

## 重新发送验证电子邮件
（可选）重新发送验证电子邮件

在申请证书时为域名配置电子邮件验证后（请参阅[Amazon Certificate Manager 电子邮件验证](email-validation.md)），您可以使用 Amazon Certificate Manager API 请求 ACM 向您发送一封用于续订证书的域名验证电子邮件。您应在以下情况下执行此操作：
+ 您最初请求 ACM 证书时使用的是电子邮件验证。
+ 您的证书的续订状态为**等待验证**。有关确定证书的续订状态的信息，请参阅[检查证书的续订状态](check-certificate-renewal-status.md)。
+ 您未收到或无法找到 ACM 为证书续订发送的原始域验证电子邮件。

要将验证电子邮件发送到与您在证书请求中最初配置的域不同的域，可以使用 ACM API 中的[ResendValidationEmail](https://docs.amazonaws.cn/acm/latest/APIReference/API_ResendValidationEmail.html)操作 Amazon CLI、或 Amazon SDKs。ACM 会将电子邮件发送到指定的验证域。您可以通过在支持的区域 Amazon CLI Amazon CloudShell 中使用来访问浏览器内的。

**请求 ACM 重新发送域验证电子邮件（控制台）**

1. 在家中打开[https://console.aws.amazon.com/acm/主 Amazon Certificate Manager](https://console.amazonaws.cn/acm/home)机。

1. 选择需要验证的证书的**证书 ID**。

1. 选择 **Resend validation email**（重新发送验证电子邮件）。

**请求 ACM 重新发送域验证电子邮件 (ACM API)**  
在 ACM API 中使用该[ResendValidationEmail](https://docs.amazonaws.cn/acm/latest/APIReference/API_ResendValidationEmail.html)操作。在这种情况下，传递证书的 ARN、需要手动验证的域以及您要在其中接收域验证电子邮件的域。以下示例说明如何使用 Amazon CLI执行该操作。此示例包含换行符以便于阅读。

```
$ aws acm resend-validation-email \
	--certificate-arn arn:aws:acm:region:account:certificate/certificate_ID \
	--domain subdomain.example.com \
	--validation-domain example.com
```

# 续订通过 HTTP 验证的域
HTTP 验证的域

ACM 为最初通过 CloudFront HTTP 验证颁发的证书提供自动托管续订。

在到期前 45 天，ACM 会检查以下续订标准：

**注意**  
之前签发的有效期为 395 天的证书将在到期前 60 天续期，续订有效期为 198 天。有效期为 198 天的证书将在到期前 45 天续期。
+ 该证书目前正由使用 CloudFront。
+ 所有必需的 HTTP 验证记录均可访问并包含预期内容。

如果满足这些条件，ACM 将认为域名已通过验证并续订证书。

如果 ACM 在续订期间无法自动验证域名，则会发送 Amazon Health EventBridge 事件和 Amazon 事件。这些事件在到期前 30 天、15 天、7 天、3 天和 1 天发送。有关更多信息，请参阅 [亚马逊对 ACM 的 EventBridge 支持](supported-events.md)。

为确保成功续订，请确保 `RedirectFrom` 位置的内容与证书中每个域的 `RedirectTo` 位置的内容相匹配。

# 私有证书续订于 Amazon Certificate Manager
私有证书

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

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

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

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

## 自动导出已续订的证书


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

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

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

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

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

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

****  

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

------

1.  

   [在 Amazon 中创建规则 EventBridge](https://docs.amazonaws.cn/eventbridge/latest/userguide/eb-create-rule.html)，用于监听 ACM 运行状况事件，并在检测到 Lambda 函数时调用该函数。ACM 每次尝试续订证书时都会写入 Amazon 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 证书的托管式续订
测试托管式续订

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

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

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

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

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

1. 使用 [renew-certificate](https://docs.amazonaws.cn/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.amazonaws.cn/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.amazonaws.cn/acm/latest/APIReference/API_RenewCertificate.html)请求，指定要续订的私有证书的 ARN。然后使用该[DescribeCertificate](https://docs.amazonaws.cn/acm/latest/APIReference/API_DescribeCertificate.html)操作确认证书的续订详细信息已更新。

# 检查证书的续订状态
检查续订状态

当您尝试续订证书时，ACM 会在证书详细信息中提供 *Renewal status*（续订状态）信息字段。您可以使用 Amazon Certificate Manager 控制台、ACM API Amazon CLI、或 Amazon Health Dashboard 来检查 ACM 证书的续订状态。如果您使用控制台 Amazon CLI、或 ACM API，则续订状态可以是下面列出的四个可能的状态值之一。如果使用 Amazon Health Dashboard，也会显示类似的值。

**等待自动续订**  
ACM 正在尝试自动验证证书中的域名。有关更多信息，请参阅 [续订通过 DNS 验证的域](dns-renewal-validation.md)。无需进一步操作。

**等待验证**  
ACM 无法自动验证证书中的一个或多个域名。您必须执行相关操作验证这些域名，否则无法续订证书。如果您最初对证书使用的是电子邮件验证，请查找 ACM 发送的电子邮件，按照该电子邮件中的链接执行验证。如果之前使用的是 DNS 验证，请检查以确保 DNS 记录存在并且证书仍在使用中。

**成功**  
证书中的所有域名均已验证，且 ACM 续订了证书。无需进一步操作。

**失败**  
证书过期之前有一个或多个域名未验证，因此 ACM 未续订证书。您可以[请求新的证书](gs-acm-request-public.md)。

如果证书与其他 Amazon 服务（例如 Elastic Load Balancing 或）关联 CloudFront，或者该证书自签发或上次续订后已导出，则该证书有资格续订。

**注意**  
对续订状态的更改可能需要数小时才能生效。如果遇到问题，则续订请求会在 72 小时后超时，并且必须从头开始重复续订过程。有关问题排查帮助，请参阅[排查证书请求问题](troubleshooting-cert-requests.md)。

**Topics**
+ [

## 检查状态 (控制台)
](#check-renewal-status-console)
+ [

## 检查状态 (API)
](#check-renewal-status-api)
+ [

## 检查状态 (CLI)
](#check-renewal-status-cli)
+ [

## 使用 Personal Health Dashboard (PHD) 检查状态
](#check-renewal-status-phd)

## 检查状态 (控制台)


 下面的过程介绍如何使用 ACM 控制台检查 ACM 证书的续订状态。

1. 在家中打开[https://console.aws.amazon.com/acm/主 Amazon Certificate Manager](https://console.amazonaws.cn/acm/home)机。

1. 展开证书，查看其详细信息。

1. 在 **Details** 部分中查找 **Renewal status**（续订状态）。如果没有看到状态，说明 ACM 未开始此证书的托管续订过程。

## 检查状态 (API)


 有关演示如何使用[DescribeCertificate](https://docs.amazonaws.cn/acm/latest/APIReference/API_DescribeCertificate.html)操作检查状态的 Java 示例，请参阅[描述证书](sdk-describe.md)。

## 检查状态 (CLI)


下面的示例介绍如何使用 [Amazon Command Line Interface (Amazon CLI)](https://www.amazonaws.cn/cli/) 检查 ACM 证书续订的状态。

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

在响应中，请注意 `RenewalStatus` 字段中的值。如果没有看到 `RenewalStatus` 字段，说明 ACM 未开始证书托管续订过程。

## 使用 Personal Health Dashboard (PHD) 检查状态


对于公共证书，ACM 会尝试在到期前 45 天自动续订您的 ACM 证书，对于私有证书，ACM 会尝试在到期前 60 天自动续订您的 ACM 证书。如果 ACM 无法自动续订您的证书，它会在证书到期后 45 天（仅限私人）、30 天、15 天、7 天、3 天和 1 天的时间间隔向您发送证书续订事件通知，告知您需要采取行动。 Amazon Health Dashboard Amazon Health Dashboard 是 Amazon Health 服务的一部分。它不需要设置，您的账户中通过身份验证的任何用户都可以查看。有关更多信息，请参阅 [Amazon Health 用户指南](https://docs.amazonaws.cn/health/latest/ug/)。

**注意**  
ACM 将连续续订事件通知写入 PHD 时间线中的单个事件。每个通知都会覆盖前一个通知，直到续订成功为止。

**要使用 Amazon Health Dashboard，请执行以下操作：**

1. 登录 Amazon Health Dashboard at [https://phd.aws.amazon.com/phd/home\$1/](https://phd.aws.amazon.com/phd/home#/)。

1. 选择 **Event log**。

1. 对于 **Filter by tags or attributes**，选择 **Service**。

1. 选择 **Certificate Manager**。

1. 选择**应用**。

1. 对于 **Event category**，选择 **Scheduled Change**。

1. 选择**应用**。