我有一个域名,比方说 Sameer.com,在 namecheap 中管理。
还有一个域,product.com,在 AWS Route53 中管理。
Sameer.com 存在以下 DNS 记录:
CNAME quotes.sameer.com sameer.product.com
CAA sameer.com 0 issue "lenscrypt.org"
以及product.com 的以下记录:
A *.product.com <AWS_LOADBALANCER>
现在,如果我运行dig quotes.sameer.com
,它会解析为 AWS 负载均衡器 IP 地址。
到目前为止,一切都很好。
现在,如果我尝试通过 AWS 为域颁发证书quotes.sameer.com
,ACM 会抛出 CAA 错误,因为不允许 Amazon 颁发证书。
现在我可以做两件事。
- 在根域 Sameer.com 下添加 CAA 记录(在 namecheap 中)
- 在 Sameer.product.com 下添加 CAA 记录(在 Route53 中)
现在,如果我添加 CAA 记录
CAA sameer.product.com 0 issue "amazon.com"
,
AWS 就能够成功颁发证书。
但是,一旦我添加此 CAA 记录,该dig quotes.sameer.com
命令就无法解析。
当我 时ping quotes.sameer.com
,它显示“未知主机”。
我认为 CAA 记录不应干扰解析 CNAME。
请帮忙。我在这里缺少什么?
您需要了解 CNAME 和 CAA 记录的工作原理。
另一方面,RFC 6844, 3定义...
和...
可能的解决方案:
CAA
在域 APEX添加记录并继续使用CNAME
:添加
CAA
记录并将 替换CNAME
为A
记录。A
当发生变化时,您需要更新记录example-org.example.com.
。将记录添加到规范( ) 主机名
CAA
的域中并继续使用,例如,CNAME
CNAME
这里,别名
quotes.example.org
(#2; ) 将在 (#3)之前CNAME example-org.example.com.
搜索记录,因为RFC 6844, 4定义了这样的顺序:CAA
example.org
但是,此订单中缺少别名的父域(此处
example.com
),因此您需要CAA
为每个子域添加不同的记录。这是固定的。感谢 @Esa Jokinen
dig quotes.sameer.com
在我添加 CAA 记录后没有解析,因为当找到特定资源集(无论它是 A 记录、CAA 等)时,它不会检查同一域的通配符,在我的情况下是*.product.com
So
CAA sameer.product.com 0 issue "amazon.com"
隐藏
A *.product.com <AWS_LOADBALANCER>
所以解决方案是添加另一个 A 记录
sameer.product.com
:A sameer.product.com <AWS_LOADBALANCER>