为什么需要 Azure 的 awverify CNAME 记录?

为什么需要 Azure 的 awverify CNAME 记录?

参见:如何设置 CNAME 以指向 Azure

或 Azure 门户中的文本:

管理自定义域文本

为什么首先这是必要的?为什么指向域名通过 A 记录 不是证明我是该域名的所有者?

我的意思是.. 你首先如何更改 DNS 记录?

这条规则可以防止哪些滥用行为?

答案1

如果您可以控制计算机的 DNS 查找,或者能够注入主机记录,那么您可以伪造该机器的 A 记录并将其指向 Azure 网站(实际上没有什么可以阻止您对 VM 执行此操作)

通过让您创建 cname 记录并独立验证它(通过其内部/公共 DNS 系统),这意味着您确实可以控制该域,并且您不会欺骗别人的域。

答案2

让我尝试通过提供两种情况来回答您的问题。在这两种情况下,您仍需要验证您是所有者,这只是一个安全步骤。

1)www.example.com未被访问且未投入生产

2)www.example.com目前正在生产中,并且被大量使用

1) 如果您的域名现在正在设置或尚未投入生产/被访问,您可以创建指向的 CNAME 记录yoursite.azurewebsites.net。不需要awverify.myhost.azurewebsites.net

2) 如果您的域名使用率很高,并且当前访问量很大,并且您希望测试 Azure 是否看到 DNS 记录中的更改,则可以创建一个名为“ awverify”的子域awverify.example.com,并将其指向已创建的子域awverify.myhost.azurewebsites.net。这不会影响您当前访问您网站的用户www.example.com。一旦 Azure 验证它看到 CNAME 中的更改,您就可以通知用户进行维护并更改 A 记录。如果您只是更改 A 记录,则该网站可能会被视为离线长达 8 小时。

因此,简单地回答您的问题,您不需要使用awverify。只需更改 CNAME 即可。此外,只需更改 A 记录即可将所有流量从yourdomain.com重定向到yoursite.azurewebsites.net

希望这可以帮助。

答案3

为了证明对域的控制,您需要在域的 DNS 记录中放置一些信息,这将识别您的 Azure 帐户。

此类信息可以嵌入 CNAME 指向的域名中。我期望您的帖子中省略的域部分可以识别您的特定 Azure 帐户。

您实际上不需要保密该名称。毕竟,一旦将其放入 DNS 记录中,它就会公开可见。

他们无法对 A 记录执行相同操作的原因是 A 记录中的熵不足以实现相同的安全性。

这并不意味着 CNAME 是他们唯一可以使用的方法。其他可能有效的方法包括:

  • TXT 记录
  • AAAA 记录
  • 多个 A 记录

我个人认为,由验证器随机生成的子域上的 TXT 记录是最好的方法,因为它的侵入性最小。但您的情况似乎不支持这种方法。

答案4

我并不同意这一点,但这是我直接从 Microsoft 获得的答案。简而言之,它可以阻止某人将您拥有的域添加到另一个 Azure Web 应用程序,但只能在与您位于同一数据中心的情况下。因此,本质上,有人必须尝试注册您拥有的域并且位于同一数据中心(Azure 区域),此保护才有用。从 DNS 的角度来看,这没什么意义,因为我可以添加 www.microsoft.com 并在我拥有的每个 Web 服务器上设置虚假网页,但如果我没有更改 DNS 记录的权限,那就毫无意义。当然,我可以使用流氓接入点上的流氓 DNS 服务器来执行此操作,但在这种情况下我需要 Azure Web 应用程序做什么?无论如何,我可以启动 VM 并绕过限制。这对我来说真的没有意义,而且每当需要添加新站点时,这真的只是一种烦恼。现在,这个需要几分钟的过程依赖于 DNS,然后我才能将域添加到 Web 应用程序。对于新域名来说,这通常没问题,但如果我有一个现有域名,那就麻烦了。我必须创建这个其他 DNS 记录,然后在将我的域名添加到我的 Web 应用程序后将其删除,然后修改我真正想要更改的 DNS 记录。无论如何,以下是微软对此原因的回应:

安全问题是,考虑到这种情况,如果它允许某人在您将域添加到 Web 应用程序之前将其添加到他们的应用程序中,那么您将无法再次添加您的域,因为 Azure Web 应用程序在同一数据中心内共享相同的前端服务器。因此,在将每个域/子域分配给 Web 应用程序之前,必须对其进行验证。如果我们在虚拟机上托管网站,则不会受到任何限制。

相关内容