

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

# 排查 DNS 验证问题
<a name="troubleshooting-DNS-validation"></a>

如果在使用 DNS 验证证书时遇到问题，请参阅以下指南。

DNS 问题排查的第一步是使用以下所示工具检查域的当前状态：
+ **dig** – [Linux](https://linux.die.net/man/1/dig)、[Windows](https://help.dyn.com/how-to-use-binds-dig-tool/)
+ **nslookup** – [Linux](https://linux.die.net/man/1/nslookup)、[Windows](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/nslookup)

**Topics**
+ [DNS 提供商禁用下划线](#underscores-prohibited)
+ [DNS 提供商添加的默认尾部句点](#troubleshooting-trailing-period)
+ [开启的 DNS 验证 GoDaddy 失败](#troubleshooting-DNS-GoDaddy)
+ [ACM 控制台不显示“Create record in Route 53”（在 Route 53 中创建记录）按钮](#troubleshooting-route53-1)
+ [私有（不受信任）域上的 Route 53 验证失败](#troubleshooting-route53-2)
+ [验证成功，但颁发或续订失败](#troubleshooting-dns-pending-violation)
+ [VPN 上的 DNS 服务器验证失败](#troubleshooting-vpn)

## DNS 提供商禁用下划线
<a name="underscores-prohibited"></a>

如果您的 DNS 提供商禁止在别名记录值中使用前导下划线，您可以删除 ACM 提供的值内的下划线，并在没有该下划线的情况下验证域。例如，为了进行验证，可将别名记录值 `_x2.acm-validations.aws` 可更改为 `x2.acm-validations.aws`。但是，别名记录名称参数必须始终以前导下划线开始。

您可以使用下表右侧两个值中的任意一个来验证域。


|  Name  |  Type  |  值  | 
| --- | --- | --- | 
| `_<random value>.example.com.` | 别名记录 | `_<random value>.acm-validations.aws.` | 
| `_<random value>.example.com.` | 别名记录 | `<random value>.acm-validations.aws.` | 

## DNS 提供商添加的默认尾部句点
<a name="troubleshooting-trailing-period"></a>

预设情况下，某些 DNS 提供商会向您提供的别名记录值添加尾部句点。因此，您自己添加句点可能会导致错误。例如，“`<random_value>.acm-validations.aws.`”将被拒绝，而“`<random_value>.acm-validations.aws`”将被接受。

## 开启的 DNS 验证 GoDaddy 失败
<a name="troubleshooting-DNS-GoDaddy"></a>

除非您修改 ACM 提供的别名记录值，否则注册到 Godaddy 和其他注册管理机构的域名的 DNS 验证可能会失败。以 .com 域名为例，发布的 CNAME 记录格式如下：

```
NAME: _ho9hv39800vb3examplew3vnewoib3u.example.com. VALUE: _cjhwou20vhu2exampleuw20vuyb2ovb9.j9s73ucn9vy.acm-validations.aws.
```

您可以 GoDaddy 通过截断 NAME 字段末尾的顶点域（包括句点）来创建与兼容的 CNAME 记录，如下所示：

```
NAME: _ho9hv39800vb3examplew3vnewoib3u VALUE: _cjhwou20vhu2exampleuw20vuyb2ovb9.j9s73ucn9vy.acm-validations.aws.
```

## ACM 控制台不显示“Create record in Route 53”（在 Route 53 中创建记录）按钮
<a name="troubleshooting-route53-1"></a>

如果您选择 Amazon Route 53 作为您的 DNS 提供商，则 AWS Certificate Manager 可以直接与其交互以验证您的域名所有权。在某些情况下，控制台的 **Create record in Route 53**（在 Route 53 中创建记录）按钮可能未按预期可用。如果发生这种情况，请检查以下可能原因。
+ 您没有使用 Route 53 作为您的 DNS 提供商。
+ 您使用不同账户登录 ACM 和 Route 53。
+ 您缺少在 Route 53 托管的区域中创建记录的 IAM 权限。
+ 您或其他人已验证该域。
+ 该域不可公开寻址。

## 私有（不受信任）域上的 Route 53 验证失败
<a name="troubleshooting-route53-2"></a>

在 DNS 验证过程中，ACM 在公有托管区域中搜索别名记录。如果没有找到，则在 72 小时后超时，状态为 **Validation timed out (验证超时)**。您不能使用它来托管私有域的 DNS 记录，包括 Amazon VPC [私有托管区](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-private-hosted-zones)中的资源、私有 PKI 中的不受信任域或自行签名的证书。

AWS 确实通过该[AWS 私有 CA](https://aws.amazon.com/certificate-manager/private-certificate-authority/)服务为公开不受信任的域提供支持。

## 验证成功，但颁发或续订失败
<a name="troubleshooting-dns-pending-violation"></a>

如果证书颁发失败，显示“待验证”，则即使 DNS 正确也请检查证书颁发机构授权 (CAA) 记录没有阻止颁发证书。有关更多信息，请参阅 [（可选）配置 CAA 记录](setup.md#setup-caa)。

## VPN 上的 DNS 服务器验证失败
<a name="troubleshooting-vpn"></a>

如果在 VPN 上找到 DNS 服务器，而 ACM 无法针对该服务器验证证书，请检查该服务器是否可以公开访问。使用 ACM DNS 验证颁发的公有证书要求域记录可以通过公有 Internet 进行解析。