DNS 映射或可能與 CNAME 相關

DNS 映射或可能與 CNAME 相關

我有一個小型SaaS,每個客戶都有自己的應用程式實例。每個應用程式實例都有一個 DNS,例如公司.example.com。

一位客戶(假設 X)問我是否不是客戶X.example.com 他可以將他的應用程式實例對應到他的網域:例如 app.his-domain.com

我最初是要求他新增 CNAME DNS 記錄,如下所示:

CNAME:

app.his-domain.com -> customerX.example.com

並在我的網站上為 nginx 新增一個新的 server_name :

server {

server_name customerX.example.com app.his-domain.com;

proxy_pass: https://backend;

}

但這是行不通的,因為 TLS 憑證是僅適用於 .example.com 子網域

問題:

這個 DNS 映射是如何運作的?我什至很難在谷歌上搜尋它,因為我不知道它的“官方條款”。 CNAME 的想法來自於我有限的 DNS 經驗。所以這可能完全是無稽之談…

答案1

您將 CNAMES 與 HTTP 重定向混淆了。 CNAME 只是在 DNS 查找期間轉換為 IP,但是當用戶端向伺服器發起 HTTPS 會話時,它仍然會在 HTTP 標頭中使用原始 DNS 名稱,因此您會收到憑證錯誤,因為 NGINX 正在為憑證提供服務.example.com

要解決此問題,您所需要做的就是要求用戶端頒發證書,app.his-domain.com並讓您的 NGINX 為請求該網站的用戶端提供此證書app.his-domain.com

解決這個問題的另一種方法是在你的伺服器上託管一個重定向,NGINX 告訴客戶端 301 永久移動到client.example.com,但這有一個負面的方面,你是客戶端,然後會client.example.com在瀏覽器地址欄中看到,這會否定擁有自訂網域的全部意義。

相關內容