在ACM中,我总是必须注册ACM提供的CNAME记录。它说它用这个CNAME记录来检查域所有权,但它实际上是如何检查我在ACM中指定的域是否真的归我所有的?任何解释都会很棒!
简而言之,证书颁发机构(如ACM(将尝试通过公共DNS解析您的域的CNAME记录。之后,它将从DNS检索到的值与内部存储的值进行比较,即发送给您的值。如果它们匹配,则验证您的域。
用外行的话来说,它告诉你一个秘密,然后让你把这个秘密展示在家里的一扇窗户上。之后,它会开车经过您的窗口,检查显示的秘密是否正确。如果是,那就意味着你拥有这所房子(或者至少可以使用它(。
最佳,Stefan
luk2302已经在评论中解释了这个想法,我将详细说明。
正如您正确观察到的,ACM可以使用DNS验证来确认特定域的所有权。在这种情况下,所有权大致定义为"所有权">对官方DNS记录进行改变的能力";,所以它更像是控制,而不是技术上的所有权。
如何检查某人是否能够控制域
您要求他们在域上设置一些包含您创建的值的记录,然后检查这些记录是否存在。如果他们这样做了,他们就控制了域。
为什么这样做
DNS是一个分层分布式数据库。像stackoverflow.com.
这样的DNS记录(最后一个点是有意的,但通常被省略(由从右到左读取的多个级别组成。右侧的.
表示根区域。根区域保存其正下方的所有记录,即所谓的顶级域(TLD(,如.com
、.net
或.org
。.com
TLD后面的名称服务器直接保存它下面的所有记录,因此他们知道谁控制stackoverflow.com.
。
如果你从层次结构的顶部开始,一直到底部,你就会发现哪些服务器拥有一个域。
您可以设置自己的DNS服务器并为stackoverflow.com
创建记录,但没有人会与它对话并明确查询它,因为它不是层次结构的一部分。你可以配置你的本地DNS解析程序与你自己的DNS服务器对话,但亚马逊(验证所有权(不会这么做。