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

CNAME と HTTP リダイレクトを混同しています。CNAME は DNS ルックアップ中に IP に変換するだけですが、クライアントがサーバーへの HTTPS セッションを開始すると、HTTP ヘッダーで元の DNS 名が引き続き使用されます。そのため、NGINX が の証明書を提供しているため、証明書エラーが発生します.example.com

この問題を解決するには、クライアントに の証明書を発行するように依頼しapp.his-domain.com、サイトをリクエストしているクライアントに対して NGINX にこの証明書を提供させるだけですapp.his-domain.com

これを修正する別の方法は、サーバー上でリダイレクトをホストすることです。この場合、NGINX はクライアントに 301 Permanently Moved to を通知しますclient.example.comが、これにはクライアントのブラウザのアドレス バーに表示されるマイナス面がありclient.example.com、カスタム ドメインを持つことの意味が全体的に失われます。

関連情報