為什麼 AWS Route 53 / 應用程序負載均衡器解析多級子域
在 AWS 中,我在 Application Load Balancer 處終止 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 握手。如果我完成了一個
nslookup
forx.example.com
並且y.x.example.com
我得到了相同的 NameServers,我不會期望 Route 53 解決y.x.example.com
.因此,我正在尋找以下兩個問題之一的答案:
- 如何配置 AWS 負載均衡器以阻止埠 443 上的所有萬用字元多級子域?
- 為什麼 Route 53 正在解析
y.x.example.com
/如何停止 Route 53 解析?
- 如果這是關於 HTTPS/TLS 的具體情況,我認為這不會以任何有意義的方式實現。
如果您沒有客戶端嘗試連接的名稱的有效證書,則無論配置如何,您都無法首先發送有效響應(如問題中提到的 404 響應)在伺服器端。
對於普通的 HTTP 案例,可能會根據Host condition執行類似要求的操作,但我不確定是否真的可以區分單級與多級案例。不過,我不確定這些天普通的 HTTP 案例是否有趣。 2. 這就是萬用字元在 DNS 中的工作方式。查找不屬於樹的現有分支的 DNS 名稱(無論是否缺少一個或多個標籤)將匹配其上方的萬用字元記錄。
還值得注意的是,
*
僅當它是最左邊的標籤時才用作萬用字元。*.example.com
用作萬用字元,*.foo.example.com
用作萬用字元,但foo.*.example.com
,foo*.example.com
或*foo.example.com
不是 DNS 中的萬用字元。我不相信您有使用萬用字元的實用方法,同時獲得您要求的“僅一級”功能(通常使用 DNS 萬用字元或專門使用 Route53)。考慮改為添加您實際需要的特定名稱(如果需要,動態添加),或者以其他方式使用正常的萬用字元行為。
總的來說,我懷疑最好的選擇是不在 DNS 中使用萬用字元,這樣就不會出現客戶端使用這些不受歡迎的名稱連接到 ELB 的問題。