为什么 AWS Route 53/应用程序负载均衡器解析多级子域

为什么 AWS Route 53/应用程序负载均衡器解析多级子域

在 AWS 中,我在应用程序负载均衡器上终止 TLS。我已经使用 AWS 的证书管理器 (ACM) 配置了通配符 TLS 证书,例如,*.example.com.我有 AWS Route 53 解析*.example.com,但我什么都没有,*.*.example.com因为我不需要这个。

我知道您不能为诸如这样的多级域名配置通配符证书*.*.example.com

https://x.example.com一切正常,并以有效证书进行响应。我收到证书错误https://y.x.example.com,这是有道理的。我不需要为诸如 之类的多级子域提供服务*.*.example.com

我希望能够阻止所有多级域请求,例如https://y.x.example.com或只是不让 Route 53 解析。基本上,我想要一条规则,规定任何主机都https://*.*.example.com返回 404 或主机不被解析。

在应用程序负载均衡器中,我有 2 个监听器端口 80 和端口 443。

我可以为端口 80 侦听器配置一条规则,该规则运行正常,http://x.y.example.com并返回 404,但当我为端口 443 配置相同的规则时,它不起作用。我想这是有道理的,因为浏览器无法完成 TLS 握手。

如果我完成一个nslookupforx.example.com并且y.x.example.com获得相同的 NameServers,我不会期望 Route 53 能够解析y.x.example.com

因此,我正在寻找以下两个问题之一的答案:

  1. 如何配置 AWS 负载均衡器以阻止端口 443 上的所有通配符多级子域?
  2. 为什么 Route 53 会解析y.x.example.com/如何停止 Route 53 解析相同的内容?

答案1

  1. 如果这是关于 HTTPS/TLS 的情况,我认为没有任何有意义的方法可以做到这一点。
    如果您没有客户端尝试连接的名称的有效证书,那么无论服务器端的配置如何,您首先都无法发送有效的响应(如问题中提到的 404 响应)。
    对于普通的 HTTP 情况,可能可以根据寄主条件但我不确定是否真的可以区分单级和多级情况。不过,我不确定现在普通的 HTTP 情况是否那么有趣。

  2. 这就是通配符在 DNS 中的工作方式。查找不属于树的现有分支的 DNS 名称(无论是否缺少一个或多个标签)都将匹配其上方的通配符记录。
    还值得注意的是,*只有当它是最左边的标签时,它才可以用作通配符。*.example.com用作通配符,*.foo.example.com用作通配符,但foo.*.example.comfoo*.example.com*foo.example.com不是 DNS 中的通配符。
    我不认为您有一种实用的方法可以使用通配符,同时获得您要求的“仅一个级别”功能(通常使用 DNS 通配符或专门使用 Route53)。请考虑添加您实际需要的特定名称(如果需要,可以动态添加),或者使用正常的通配符行为。

总的来说,我认为最好的选择是在 DNS 中不要使用通配符,这样就不会出现客户端使用这些不受欢迎的名称连接到 ELB 的问题。

相关内容