

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

# Amazon Certificate Manager 域名系统验证
<a name="dns-validation"></a>

域名系统 (DNS) 是连接到网络的资源的目录服务。DNS 提供商维护一个包含定义域的记录的数据库。如果选择 DNS 验证，ACM 会提供一条或多条别名记录，这些记录必须添加到此数据库。这些记录包含一个唯一的键值对，用于证明您对该域具有控制权。

**注意**  
在创建采用电子邮件验证的证书后，您无法切换到使用 DNS 对其进行验证。要使用 DNS 验证，请删除该证书，然后创建一个使用 DNS 验证的新证书。

例如，如果为 `example.com` 域请求证书并指定 `www.example.com` 为其他名称，则 ACM 为您创建两条别名记录。每条记录都是专为您的域和账户创建的，包含名称和值。该值是一个别名，指向 ACM 用来自动续订您的证书的 Amazon 域。别名记录只需添加到 DNS 数据库中一次。只要证书正在使用中，并且别名记录保持存在，ACM 就会自动续订证书。

**重要**  
如果您使用 Amazon Route 53 管理您的公有 DNS 记录，请联系您的 DNS 提供商了解如何添加记录。如果您没有编辑域的 DNS 数据库的权限，则必须使用[电子邮件验证](email-validation.md)。

无需重复验证，只要别名记录仍然存在，您就可以为您的完全限定域名 (FQDN) 申请额外的 ACM 证书。也就是说，您可以创建具有相同域名的替换证书，或者是覆盖不同子域的证书。由于 CNAME 验证令牌适用于任何 Amazon 区域，因此您可以在多个区域中重新创建相同的证书。您还可以替换已删除的证书。

您可以通过从证书关联的 Amazon 服务删除证书或通过删除别名记录来停止自动续订。如果您的 DNS 提供商不是 Route 53，请联系提供商了解如何删除记录。如果 Route 53 是您的提供商，请参阅 *Route 53 开发人员指南*中的[删除资源记录集](https://docs.amazonaws.cn/Route53/latest/DeveloperGuide/resource-record-sets-deleting.html)。有关托管证书续订的更多信息，请参阅[中的托管证书续订 Amazon Certificate Manager](managed-renewal.md)。

**注意**  
如果您的 DNS 配置中链接了五个以上的别名 CNAMEs 记录，CNAME 解析就会失败。如果您需要更长的链接，我们建议使用[电子邮件验证](email-validation.md)。

## ACM 别名记录的工作原理
<a name="cnames-overview"></a>

**注意**  
本部分适用于不使用 Route 53 作为其 DNS 提供商的客户。

如果您不使用 Route 53 作为 DNS 提供商，则需要（通常通过网站）手动将 ACM 提供的别名记录输入到提供商的数据库中。别名记录用于多种目的，包括作为重新导向机制和供应商特定元数据的容器。对于 ACM，这些记录允许初始域所有权验证和持续的自动证书续订。

下表显示了六个域名的示例别名记录。每条记录的**记录名称**-**记录值**对用于验证域名所有权。

在表中，请注意，前两个**记录名称**-**记录值**对是相同的。这说明了对于 `*.example.com` 等通配符域，ACM 创建的字符串与为其基域 `example.com` 创建的字符串相同。否则，配对的**记录名称**和**记录值**将会因每个域名而异。


**别名记录示例**  
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/acm/latest/userguide/dns-validation.html)

下划线 (\$1) 之后的*xN*值是 ACM 生成的长字符串。例如，

```
_3639ac514e785e898d2646601fa951d5.example.com.
```

代表生成的**记录名称**。关联的**记录值**可能是

```
_98d2646601fa951d53639ac514e785e8.acm-validation.aws.
```

用于同一 DNS 记录。

**注意**  
如果您的 DNS 提供商不支持带有前导下划线的别名记录值，请参阅[排查 DNS 验证问题](troubleshooting-DNS-validation.md)。

当您请求证书并指定 DNS 验证时，ACM 会提供以下格式的别名记录信息：


****  

| 域名 | 记录名称 | 记录类型 | 记录值 | 
| --- | --- | --- | --- | 
| example.com | \$1a79865eb4cd1a6ab990a45779b4e0b96.example.com。 | 别名记录 |  \$1424c7224e9b0146f9a8808af955727d0.acm-validations.aws。  | 

*域名*是与证书关联的 FQDN。*记录名称*唯一标识记录，用作键值对的键。*记录值*用作键值对的值。

必须在 DNS 提供商用于添加 DNS 记录的 Web 界面的相应字段中输入所有这三个值（*域名*、*记录名称*和*记录值*）。提供商对于记录名称（或只是“名称”）字段的处理方式并不相同。在某些情况下，您需要提供上面所示的整个字符串。其他提供商会自动将域名附加到您输入的任何字符串，这意味着（在本示例中）您只应输入

```
_a79865eb4cd1a6ab990a45779b4e0b96
```

到名称字段中。如果您猜错了这一点，并输入包含域名的记录名称（例如 *`.example.com`*），您的最终结果可能如下所示：

```
_a79865eb4cd1a6ab990a45779b4e0b96.example.com.example.com.
```

在这种情况下，验证将失败。因此，您应该尝试提前确定您的提供商期望的输入类型。

## 设置 DNS 验证
<a name="setting-up-dns-validation"></a>

此部分介绍如何将公有证书配置为使用 DNS 验证。<a name="dns-validation-console"></a>

**在控制台中设置 DNS 验证**
**注意**  
此过程假设您已经创建了至少一个证书，并且您正在创建该证书的 Amazon 地区工作。如果您尝试打开控制台并看到首次使用屏幕，或者您已成功打开控制台，但没有在列表中看到您的证书，请确认您指定了正确的区域。

1. 打开 ACM 控制台，网址为。[https://console.aws.amazon.com/acm/](https://console.amazonaws.cn/acm/)

1. 在证书列表中，请选择要配置的状态为 **Pending validation**（等待验证）的证书的 **Certificate ID**（证书 ID）。此时将打开证书的详细信息页面。

1. 在 **Domains**（域）部分，完成下列两个过程之一：

   1. （可选）使用 Route 53 进行验证。

      如果满足以下条件，则会显示活动的 **Create records in Route 53**（在 Route 53 中创建记录）按钮：
      + 您使用 Route 53 作为 DNS 提供商。
      + 您有权写入由 Route 53 托管的区域。
      + 您的 FQDN *尚未*经过验证。
**注意**  
如果您在使用 Route 53 但 **Create record in Route 53**（在 Route 53 中创建记录）缺失或已禁用，请参阅 [ACM 控制台不显示“Create record in Route 53”（在 Route 53 中创建记录）按钮](troubleshooting-DNS-validation.md#troubleshooting-route53-1)。

      选择 **Create records in Route 53**（在 Route 53 中创建记录），然后选择 **Create records**（创建记录）。此时会打开 **Certificate status**（证书状态）页面，状态横幅将报告 **Successfully created DNS records**（已成功创建 DNS 记录）。

      您的新证书可能会继续显示 **Pending validation**（等待验证）最多 30 分钟。
**提示**  
您无法以编程方式请求 ACM 在 Route 53 中自动创建您的记录。但是，您可以对 Route 53 进行 Amazon CLI 或 API 调用，在 Route 53 的 DNS 数据库中创建记录。有关 Route 53 记录集的更多信息，请参阅[使用资源记录集](https://docs.amazonaws.cn/Route53/latest/DeveloperGuide/rrsets-working-with.html)。

   1. （可选）如果您没有使用 Route 53 作为 DNS 提供商，则必须检索 CNAME 信息，并将其添加到您的 DNS 数据库中。在新证书的详细信息页面上，您可以通过两种方式之一来执行此操作：
      + 复制 **Domains**（域）部分中显示的 CNAME 组件。此信息需要手动添加到您的 DNS 数据库。
      + 或者，选择 **Export to CSV**（导出到 CSV）。结果文件中的信息需要手动添加到 DNS 数据库中。
**重要**  
要避免验证问题，请查看 [ACM 别名记录的工作原理](#cnames-overview) 然后将信息添加到 DNS 提供商的数据库。如果遇到问题，请参阅 [排查 DNS 验证问题](troubleshooting-DNS-validation.md)。

如果 ACM 无法在生成别名记录值后的 72 小时内验证域名，ACM 会将证书状态更改为 **Validation timed out（验证超时）**。导致此结果的最可能原因是您未使用 ACM 生成的值成功更新 DNS 配置。要解决此问题，您必须在查看别名记录说明后请求新的证书。