跳至内容

如何验证来自 Route 53 的 ACM 证书?

2 分钟阅读
0

我想验证来自 Amazon Route 53 的 AWS Certificate Manager(ACM)证书。

简短描述

要验证来自 Route 53 的 ACM 证书,请使用 DNS 验证。要证明域所有权,请将 ACM 提供的 CNAME 记录添加到您的 DNS 配置中。

解决方法

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

如果 Route 53 是域的 DNS 服务提供商,则您可以在 ACM 控制台中设置 DNS 验证以创建 CNAME。当您选择此选项时,ACM 会自动将记录添加到域的 Route 53 托管区。

但是,如果存在以下任一场景,则您必须手动添加 CNAME 记录:

  • 同一域有多个托管区。
  • 您的托管区位于不同的 AWS 账户中。

确定 NS 记录

要确定名称服务器 (NS) 记录,请先找到相应托管区的 DNS 配置。运行以下命令:

Linux 和 macOS:

$ dig NS example.com

Windows:

$ nslookup -type=ns example.com

**注意:**请将 example.com 替换为您的域名。

此命令可提供域 DNS 配置的 NS 记录。

将 CNAME 记录添加到 NS 记录与输出中的 NS 相同的 Route 53 托管区中。

输出示例:

$ dig example.com NS; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.amzn2.0.2 <<>> example.comNS
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56071
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:
;example.com. IN NS

;; ANSWER SECTION:
example.com. 300 IN NS ns-199x.awsdns-xx.co.uk.
example.com. 300 IN NS ns-29x.awsdns-xx.com.
example.com. 300 IN NS ns-54x.awsdns-xx.net.
example.com. 300 IN NS ns-120x.awsdns-xx.org.

在 Route 53 中添加 CNAME 记录

使用 NS 记录识别要使用的托管区后,在其中添加您的 CNAME 记录。按照以下步骤操作:

  1. 打开 Route 53 控制台
  2. 导航到您的域的托管区。此托管区必须具有与您在上一任务中确定的 NS 相同的 NS 记录。
  3. 选择 Create record(创建记录)。
  4. 对于 Name(名称),输入 ACM 生成的 CNAME 的 Record Name(记录名称),但不包括域部分。有关详细信息,请参阅 ACM 的 CNAME 记录的工作原理
  5. 对于 Value(值),输入 ACM 提供的完整 Record Value(记录值)。
  6. 对于 Record type(记录类型),选择 CNAME - Routes traffic to another domain name and to some AWS resources(CNAME - 将流量路由到其他域名和某些 AWS 资源)。
  7. 对于 Route Policy(路由策略),选择 Simple routing(简单路由)。
  8. 选择 Create Records(创建记录)。

验证 CNAME 记录的解析

要确认 Route 53 已将 CNAME 记录添加到您的 DNS 配置,请运行类似于以下的命令:

Linux 和 macOS:

dig +short _example-cname.example.com

Windows:

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

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

如果您成功添加并传播了 CNAME 记录,则该命令将在输出中返回 CNAME 记录的值。

具有/不具有单独托管区的子域的证书请求

要为配置了单独托管区的子域申请证书,请完成以下步骤:

  1. 按照“确定 NS 记录”部分中的步骤识别子域的 NS 记录。
  2. 在命令中,请将域名替换为您的子域名。
  3. 查看命令输出:
    如果您收到 NS 记录,请在子域的托管区中添加 CNAME 记录以匹配这些值。
    如果您未收到 NS 记录,请验证您的子域委派。
    有关详细信息,请参阅如何为托管在 Route 53 中的域创建子域?

要为未配置单独托管区的子域申请证书,请完成以下步骤:

  1. 在顶点域的托管区中添加 CNAME 记录。有关详细信息,请参阅 Solving DNS zone apex challenges with third-party DNS providers using AWS(使用 AWS 解决第三方 DNS 提供商的 DNS Zone Apex(机构根网域)难题
  2. 按照“验证 CNAME 记录的解析”部分中的步骤来确认您的 CNAME 记录是否可以正确解析。

**注意:**如果 DNS 配置最近进行了更改,您可能会因生存时间 (TTL) 值遇到传播延迟

相关信息

在我对域名使用 ACM 托管续订流程后,为什么我的 ACM 证书续订状态仍为“待验证”?

为目标 DNS 配置 Amazon Route 53 别名记录

AWS 官方已更新 8 个月前