DNS 映射或可能与 CNAME 相关

DNS 映射或可能与 CNAME 相关

我有一个小型的 saas,每个客户都有自己的应用程序实例。每个应用程序实例都有一个类似公司.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 映射东西应该如何工作?我甚至很难在 Google 上搜索它,因为我不知道它的“官方术语”。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在浏览器地址栏中看到它,这在某种程度上否定了拥有自定义域的全部意义。

相关内容