本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS Certificate Manager DNS 验证
域名系统 (DNS) 是连接到网络的资源的目录服务。DNS 提供商维护一个包含定义域的记录的数据库。如果选择 DNS 验证,ACM 会提供一条或多条别名记录,这些记录必须添加到此数据库。这些记录包含一个唯一的键值对,用于证明您对该域具有控制权。
注意
在创建采用电子邮件验证的证书后,您无法切换到使用 DNS 对其进行验证。要使用 DNS 验证,请删除该证书,然后创建一个使用 DNS 验证的新证书。
例如,如果为 example.com
域请求证书并指定 www.example.com
为其他名称,则 ACM 为您创建两条别名记录。每条记录都是专为您的域和账户创建的,包含名称和值。值是指向AWS域的别名,ACM 使用该域自动续订证书。别名记录只需添加到 DNS 数据库中一次。只要证书正在使用中,并且别名记录保持存在,ACM 就会自动续订证书。
重要
如果您使用 Amazon Route 53 管理您的公有 DNS 记录,请联系您的 DNS 提供商了解如何添加记录。如果您没有编辑域的 DNS 数据库的权限,则必须使用电子邮件验证。
无需重复验证,只要别名记录仍然存在,您就可以为您的完全限定域名 (FQDN) 申请额外的 ACM 证书。也就是说,您可以创建具有相同域名的替换证书,或者是覆盖不同子域的证书。由于别名记录验证令牌适用于任何AWS区域中,您可以在多个区域中重新创建相同的证书。您还可以替换已删除的证书。
您可以通过从证书关联的AWS服务删除证书或通过删除别名记录来停止自动续订。如果您的 DNS 提供商不是 Route 53,请联系提供商了解如何删除记录。如果 Route 53 是您的提供商,请参阅 Route 53 开发人员指南中的删除资源记录集。有关托管证书续订的更多信息,请参阅AWS Certificate Manager 中的托管式证书续订。
注意
如果在 DNS 配置中链接到五个以上的别名记录,则别名记录解析将失败。如果您需要更长的链接,我们建议使用电子邮件验证。
ACM 别名记录的工作原理
注意
本部分适用于不使用 Route 53 作为其 DNS 提供商的客户。
如果您不使用 Route 53 作为 DNS 提供商,则需要(通常通过网站)手动将 ACM 提供的别名记录输入到提供商的数据库中。别名记录用于多种目的,包括作为重新导向机制和供应商特定元数据的容器。对于 ACM,这些记录允许初始域所有权验证和持续的自动证书续订。
下表显示了六个域名的示例别名记录。每条记录的记录名称-记录值对用于验证域名所有权。
在表中,请注意,前两个记录名称-记录值对是相同的。这说明了对于 *.example.com
等通配符域,ACM 创建的字符串与为其基域 example.com
创建的字符串相同。否则,配对的记录名称和记录值将会因每个域名而异。
域名 | 记录名称 | 记录值 | 注释 |
---|---|---|---|
*.example.com | _x1 .example.com。 |
_x2 .acm-validations.aws。 |
相同 |
example.com | _x1 .example.com。 |
_x2 .acm-validations.aws。 |
|
www.example.com | _x3 .www.example.com。 |
_x4 .acm-validations.aws。 |
唯一 |
host.example.com | _x5 .host.example.com。 |
_x6 .acm-validations.aws。 |
唯一 |
subdomain.example.com | _x7 .subdomain.example.com。 |
_x8 .acm-validations.aws。 |
唯一 |
host.subdomain.example.com | _x9 .host.subdomain.example.com。 |
_x10 .acm-validations.aws。 |
唯一 |
下划线 ( _ ) 之后的 xN
值是由 ACM 生成的长随机字符串。例如,
_
3639ac514e785e898d2646601fa951d5
.example.com.
代表生成的记录名称。关联的记录值可能是
_
98d2646601fa951d53639ac514e785e8
.acm-validation.aws.
用于同一 DNS 记录。
注意
如果您的 DNS 提供商不支持带有前导下划线的别名记录值,请参阅排查 DNS 验证问题。
当您请求证书并指定 DNS 验证时,ACM 会提供以下格式的别名记录信息:
域名 | 记录名称 | 记录类型 | 记录值 |
---|---|---|---|
example.com | _a79865eb4cd1a6ab990a45779b4e0b96.example.com。 | 别名记录 |
_424c7224e9b0146f9a8808af955727d0.acm-validations.aws。 |
域名是与证书关联的 FQDN。记录名称唯一标识记录,用作键值对的键。记录值用作键值对的值。
必须在 DNS 提供商用于添加 DNS 记录的 Web 界面的相应字段中输入所有这三个值(域名、记录名称和记录值)。提供商对于记录名称(或只是“名称”)字段的处理方式并不相同。在某些情况下,您需要提供上面所示的整个字符串。其他提供商会自动将域名附加到您输入的任何字符串,这意味着(在本示例中)您只应输入
_a79865eb4cd1a6ab990a45779b4e0b96
到名称字段中。如果您猜错了这一点,并输入包含域名的记录名称(例如 .example.com
),您的最终结果可能如下所示:
_a79865eb4cd1a6ab990a45779b4e0b96.example.com.example.com.
在这种情况下,验证将失败。因此,您应该尝试提前确定您的提供商期望的输入类型。
设置 DNS 验证
此部分介绍如何将公有证书配置为使用 DNS 验证。
在控制台中设置 DNS 验证
注意
此过程假设您已经至少创建了一个证书,并且您正在创建证书的 AWS 区域内工作。如果您尝试打开控制台并看到首次使用屏幕,或者您已成功打开控制台,但没有在列表中看到您的证书,请确认您指定了正确的区域。
-
通过以下网址打开 ACM 控制台:https://console.aws.amazon.com/acm/
。 -
在证书列表中,请选择要配置的状态为 Pending validation(等待验证)的证书的 Certificate ID(证书 ID)。此时将打开证书的详细信息页面。
-
在 Domains(域)部分,完成下列两个过程之一:
-
(可选)使用 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 中创建记录)按钮。
选择 Create records in Route 53(在 Route 53 中创建记录)按钮,然后选择 Create records(创建记录)。此时会打开 Certificate status(证书状态)页面,状态横幅将报告 Successfully created DNS records(已成功创建 DNS 记录)。
您的新证书可能会继续显示 Pending validation(等待验证)最多 30 分钟。
提示
您无法以编程方式请求 ACM 在 Route 53 中自动创建您的记录。但是,您可以向 Route 53 发出一个 AWS CLI 或 API 调用以在 Route 53 DNS 数据库中创建记录。有关 Route 53 记录集的更多信息,请参阅使用资源记录集。
-
-
(可选)如果您没有使用 Route 53 作为 DNS 提供商,则必须检索 CNAME 信息,并将其添加到您的 DNS 数据库中。在新证书的详细信息页面上,您可以通过两种方式之一来执行此操作:
-
复制 Domains(域)部分中显示的 CNAME 组件。此信息需要手动添加到您的 DNS 数据库。
-
或者,选择 Export to CSV(导出到 CSV)。结果文件中的信息需要手动添加到 DNS 数据库中。
重要
要避免验证问题,请查看 ACM 别名记录的工作原理 然后将信息添加到 DNS 提供商的数据库。如果遇到问题,请参阅 排查 DNS 验证问题。
-
-
如果 ACM 无法在生成别名记录值后的 72 小时内验证域名,ACM 会将证书状态更改为 Validation timed out(验证超时)。导致此结果的最可能原因是您未使用 ACM 生成的值成功更新 DNS 配置。要解决此问题,您必须在查看别名记录说明后请求新的证书。