DNS验证 - AWS Certification

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

DNS验证

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

注意

使用电子邮件验证功能创建证书后,您无法切换到使用DNS验证证书。要使用DNS验证,请删除该证书,然后创建一个使用DNS验证的新证书。

例如,如果您为example.com域名申请证书,并以此www.example.com作为附加名称,则会为您ACM创建两CNAME条记录。每条记录都是专为您的域和账户创建的,包含名称和值。该值是一个别名,指向ACM用于自动续订证书的 AWS 域名。这些CNAME记录只能添加到您的DNS数据库一次。ACM只要证书在使用中并且您的CNAME记录保持不变,就会自动续订您的证书。

重要

如果您不使用 Amazon Route 53 来管理您的公共DNS记录,请联系您的DNS提供商以了解如何添加记录。如果您没有编辑域名DNS数据库的权限,则必须改用电子邮件验证

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

您可以通过从与其关联的 AWS 服务中删除证书或删除CNAME记录来停止自动续订。如果 Route 53 不是您的提供DNS商,请联系您的提供商以了解如何删除记录。如果 Route 53 是您的提供商,请参阅 Route 53 开发人员指南中的删除资源记录集。有关托管证书续订的更多信息,请参阅ACM证书的托管续订

注意

CNAME如果您的DNS配置中有五个以上链接在一起CNAMEs,则解析将失败。如果您需要更长的链接,我们建议使用电子邮件验证

CNAME记录是如何ACM工作的

注意

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

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

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

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

示例CNAME记录
域名 记录名称 记录值 注释
*.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提供商不支持带有前导下划线的CNAME值,请参阅DNS验证问题疑难解答

当您申请证书并指定DNS验证时,将按以下格式ACM提供CNAME信息:

域名 记录名称 记录类型 记录值
example.com _a79865eb4cd1a6ab990a45779b4e0b96.example.com。 CNAME

_424c7224e9b0146f9a8808af955727d0.acm-validations.aws。

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

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

_a79865eb4cd1a6ab990a45779b4e0b96

到名称字段中。如果您猜错了这一点,并输入包含域名的记录名称(例如 .example.com),您的最终结果可能如下所示:

_a79865eb4cd1a6ab990a45779b4e0b96.example.com.example.com.

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

设置DNS验证

本节介绍如何配置公共证书以使用DNS验证。

在控制台中设置DNS验证
注意

此过程假设您已经创建了至少一个证书,并且您正在创建该证书的 AWS 地区工作。如果您尝试打开主机并看到首次使用屏幕,或者成功打开主机但未在列表中看到您的证书,请确认您指定了正确的区域。

  1. 从 ACM 打开 https://console.aws.amazon.com/acm/ 控制台。

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

  3. Domains(域)部分,完成下列两个过程之一:

    1. (可选)使用 Route 53 进行验证。

      如果满足以下条件,则会显示活动的 Create records in Route 53(在 Route 53 中创建记录)按钮:

      • 您使用 53 号公路作为您的DNS提供商。

      • 您有权写入由 Route 53 托管的区域。

      • 您的FQDN尚未通过验证。

      注意

      如果您在使用 Route 53 但 Create record in Route 53(在 Route 53 中创建记录)按钮缺失或已禁用,请参阅 ACM控制台未显示 “在 Route 53 中创建记录” 按钮

      选择 Create records in Route 53(在 Route 53 中创建记录)按钮,然后选择 Create records(创建记录)。证书状态页面应打开并显示状态横幅,报告已成功创建DNS记录

      您的新证书可能会继续显示 Pending validation(等待验证)最多 30 分钟。

      提示

      您无法以编程方式请求在 Route 53 中ACM自动创建您的记录。但是,您可以API拨打 AWS CLI 或调用 Route 53,在 Route 53 DNS 数据库中创建记录。有关 Route 53 记录集的更多信息,请参阅使用资源记录集

    2. (可选)如果您不使用 Route 53 作为DNS提供商,则必须检索CNAME信息并将其添加到DNS数据库中。在新证书的详细信息页面上,您可以通过两种方式之一来执行此操作:

      • 复制 “” 部分中显示的CNAME组件。此信息需要手动添加到您的DNS数据库中。

      • 或者,选择 “导出到” CSV。需要将生成的文件中的信息手动添加到您的DNS数据库中。

      重要

      为避免出现验证问题,请在向DNS提供商的数据库添加信息CNAME记录是如何ACM工作的之前进行检查。如果遇到问题,请参阅 解决DNS验证问题

ACM如果无法在域名为您生成CNAME值后的 72 小时内对其进行验证,则将证书状态ACM更改为验证超时。出现此结果的最可能原因是您未成功使用ACM生成的值更新DNS配置。要解决此问题,您必须在查看CNAME说明后申请新证书。