为什么我的 AWS Certificate Manager (ACM) 证书的 DNS 验证状态停留在待验证?

上次更新时间:2020 年 9 月 11 日

我使用 DNS 验证方式请求了一个新的 AWS Certificate Manager (ACM) 证书,但其状态停留在待验证。

简短描述

当您使用 DNS 验证方式请求 ACM 证书时,ACM 会向您提供一条 CNAME 记录,您必须将它添加到您的 DNS 配置中。ACM 使用该 CNAME 记录来验证域的所有权。域验证完成后,证书的状态将从待验证变为已颁发

如果有下列任何情况,使用 DNS 验证方式请求的证书可能会停留在待验证状态 :

  • CNAME 记录未添加到正确的 DNS 配置中。
  • CNAME 记录含有多余的字符或有缺失的字符。
  • CNAME 记录已添加到正确的 DNS 配置中,但 DNS 提供商自动将裸域添加到 DNS 记录的末尾。

注意:ACM 会定期检查 DNS 记录。此过程不能手动检查。

有关 DNS 验证的更多信息,请参阅使用 DNS 验证域所有权

解决方法

CNAME 记录未添加到正确的 DNS 配置

要确认 CNAME 记录是否已添加到正确的 DNS 配置中,请运行类似以下内容的命令:

注意:example-cname.example.com 替换为您的 ACM CNAME 记录。

Linux 和 macOS:

dig +short _example-cname.example.com

Windows:

nslookup -type=cname _example-cname.example.com

如果 CNAME 记录已经添加到正确的 DNS 配置中并成功传播,命令将在输出中返回 CNAME 记录的值。

注意:某些 DNS 提供商可能需要 24-48 小时才会传播 DNS 记录。

如果您的证书处于待验证状态,则必须确认 ACM 提供的 CNAME 记录是否已添加到正确的 DNS 配置中。要确定应将 CNAME 记录添加到哪个 DNS 配置中,请运行类似以下内容的命令:

Linux 和 macOS:

dig NS example.com

Windows:

nslookup -type=ns example.com

命令将提供正确的 DNS 配置中的 NS 记录包含的名称服务器。请务必确保添加到您的 DNS 配置中的 CNAME 记录包含一条 NS 记录,该记录中包含命令输出中提供的名称服务器。

有关将 CNAME 记录添加到 Route 53 托管区域的更多信息,请参阅使用 Amazon Route 53 控制台创建记录

CNAME 记录含有多余的字符或有字符缺失

确保添加到 DNS 配置的 CNAME 记录中的名称或值不包含任何多余的字符或没有字符缺失。

CNAME 记录已添加到正确的 DNS 配置中,但 DNS 提供商自动将裸域添加到 DNS 记录的末尾

DNS 提供商可能会在所有 DNS 记录名称字段的末尾自动添加裸域。在这种情况下,CNAME 记录添加到您的 DNS 配置后的传播结果将与以下类似:

_example-cname.example.com.example.com

证书请求在最终失败前停留在待验证状态。

要确定 DNS 提供商是否会在 CNAME 记录的末尾自动添加裸域,请运行类似以下内容的命令:

Linux 和 macOS:

dig +short _example-cname.example.com.example.com

Windows:

nslookup -type=cname _example-cname.example.com.example.com

如果输出返回了 CNAME 记录的值,则说明 DNS 提供商在 DNS 记录的名称字段末尾添加了裸域。

要解决此问题,请编辑 CNAME 记录以从您为名称字段输入的文本中移除裸域。

在 DNS 提供商添加裸域后,将只有一个裸域存在。

有关详细信息,请参阅排查 DNS 验证问题