因此,我们使用 Route53,我想设置一个通配符 CNAME 记录,以将任何不匹配的子域重定向到我们的主域。我试过了,一切看起来都运行正常,但当我告诉一位同事时,他坚决反对通配符 CNAME 记录,说存在问题/安全问题或其他问题,但不愿详细说明。除了特定 DNS 服务器实现中存在的问题之外,网络搜索并没有真正找到对此问题的任何解释。
话虽如此,通配符 CNAME 记录是否存在安全问题?如果您只有顶级域名的证书,SSL 证书是否存在问题?即 CNAME 重定向是否意味着服务器看到的引荐来源将是子域或顶级域?跨域问题怎么办?
他特别喜欢费力地在子域上设置执行 301 永久重定向的服务器。这似乎过于复杂,因为 DNS RFC 1034 和 2672 描述了一种机制,而 Route53 似乎很好地支持了这一点。
如果有人明确建议不要设置通配符 CNAME 记录,您能解释一下为什么以及在什么情况下不建议这样做吗?
答案1
不存在这样的安全问题。
但是,我必须指出,DNS 本身不提供“重定向”任何请求的机制;CNAME 为另一个 DNS 名称定义别名,但需要 HTTP 服务器来实际“重定向”浏览器 - 否则访问的用户仍将在其浏览器地址栏中whatever.example.com
看到whatever.example.com
,而不是example.com
“重定向”本身所起的作用。Web 服务器也会whatever.example.com
在请求中看到,如果您使用虚拟主机,这可能会导致问题。
除了这个警告之外,实际上只有两种情况通配符 DNS 记录可能会导致问题:
- 您无法提供 NXDOMAIN 响应,因为每个子域都存在;这只有在使用 DNSSEC 时才会出现问题,即使在那时通常也无关紧要。
- SSL 只能保护其颁发的域名 - 但是,正如您提到的,通配符 SSL 证书可以消除这个问题。
就您而言(根据我从您的问题中收集到的信息),我最有可能使用通配符记录以及提供 301 重定向到我的“正确”地址的 Web 服务器;一些 DNS 提供商使用“Web 转发器”使此操作变得方便,但请注意,从技术上讲,这是一个不受您控制的 Web 服务器,它使用 301 重定向响应这些请求。(这种措辞可能听起来很可怕,但如果是一家值得信赖的公司,那就没什么可担心的,如果它不是一家值得信赖的公司,您首先就不应该将您的 DNS 托管给他们!!)
答案2
我使用通配符已经很多年了,从来没有遇到过任何问题。到目前为止,我发现 2003 年的 Windows 手机是唯一一款无法正确处理通配符的设备。
我认为使用通配符如今非常普遍,问题很少发生。从安全角度来看,您会得到一些额外的攻击媒介。例如,您可以引用“someevilXSScode.yourdomain.com”,但仍然可以访问原始网站。我认为这只是一个小问题。