公共名称服务器(由我控制,我拥有 example.com):
private.example.com.300 IN CNAME myserver.home。
私有名称服务器(某些自动配置巫术,无法修改此记录):
myserver.home.300 在 192.168.6.66
但是 private.example.com 只能间歇性地工作:它曾经在 Chrome 中工作过,但是目前不能。没有其他选项的 dig 返回 cname,但是带有 +norecurse 的 dig 会失败,每个都使用本地 dns 服务器和几个公共服务器进行了测试。
解决这个问题最简单的方法是什么?最好是不需要设置本地名称服务器的方法?
背景:在我的家庭网络中,有一个服务器“myserver.home”,可以通过“myserver.home”访问,但这显然不是有效的公共 DNS 名称。不过,它在家庭网络中工作正常。因为我需要 HTTPS,所以我从 private.example.com 向 myserver.home 添加了 CNAME,这样我就可以获得 private.example.com 的证书(使用 certbot、dns-01,工作正常)。
答案1
设置不清楚,但我认为 dig 是在询问公共 DNS 服务器,而公共 DNS 服务器显然不知道“myserver.home”是什么。dig(以及任何其他解析软件)必须通过实际的 DNS 记录来解析“example.com”。如果您引用“myserver.home” - 此名称应该存在于解析器的 DNS 域中,任何其他域都不起作用(例如 /etc/hosts 或 autoconfig)。
有两种方法可以证明您拥有域名 - 通过网页或通过 DNS TXT 记录。
如果您需要颁发给 example.com 的证书,并且您是管理公共 example.com DNS 的人 - 您需要为 example.com 创建 TXT 记录以证明它属于您。这取决于您使用的软件(certbot、acme.sh 或其他)。查看手册页中的“DNS 质询”。