アプリケーションがホストし、テナントの製品の技術ドキュメントを提供するマルチテナントアプリケーションを実装しています。
今、私が検討していたアプローチは-docs.<tenant>.mycompany.com
でドキュメントをホストし、docs.tenantcompany.com
がdocs.<tenant>.mycompany.com
を指すようにCNAME DNSレコードを設定するようにテナントに依頼しました。
テナントの証明書を使用してサイトをSSL対応にしたい。私のテナント会社がワイルドカードSSL証明書を持っているかどうかを知りたいのですが、この設定で動作しますか、それともdocs.tenantcompany.com
用に新しいSSL証明書を購入する必要がありますか?
証明書名は、「最終的な」DNSレコードではなく、ユーザーがブラウザに入力したものと一致する必要があります。ユーザーがdocs.tenantcompany.com
を入力した場合、SSL証明書はそれをカバーする必要があります。
docs.tenantcompany.com
がfoo.example.com
へのCNAMEである場合、証明書はfoo.example.com
をカバーする必要がありますnotdocs.tenantcompany.com
のみをカバーします。
ジェイソンの答えは正しいです。しかし、ここで少し用語を明確にするために、「DNSリダイレクト」は少し誤った名称です。 DNSには、別の名前を指す名前であるCNAMEレコード(別名エイリアス)があります。しかし、それはリダイレクトではありません。名前から名前、IPへの変換はすべてバックグラウンドで行われ、ブラウザは最初の名前のみを考慮します。
リダイレクトを行うのは、サーバーがブラウザーに別の場所に移動するよう明示的に指示しているWebサーバーのみです。 Webサーバーwasが実際に他の名前へのリダイレクトを行っている場合、ブラウザは最終的に両方に個別に接続するため、実際にはwould両方の名前の証明書が必要です。
自分のテナント会社にワイルドカードSSL証明書があるかどうかを知りたいのですが、この設定で動作しますか、それとも
docs.tenantcompany.com
用に新しいSSL証明書を購入する必要がありますか?
短い回答:いいえ。テナント企業の名前にワイルドカードが*.tenantcompany.com
に含まれている場合、サーバーにインストールしてアクセスをカバーするのに十分ですその名前で。これをしたいかどうかは別の話です。
名前docs.<tenant>.mycompany.com
の証明書(直接証明書やワイルドカード*.<tenant>.mycompany.com
など)は、常にdocs.tenantcompany.com
の名前を介してアクセスする場合は役に立ちません。
適切なブラウザでhttps://docs.tenantcompany.com
を閲覧するとします。ブラウザはHTTPプロトコルを介してTLSを実行します。具体的には2つの点に注意します。それ:
ブラウザおよびオペレーティングシステムのDNSサブシステムは、ローカルネットワークまたはインターネット上のどこか適切なポートでWebサーバーを実行している適切なホストのIPアドレスを返します。 HTTPS(保護された)トラフィックの場合、URLで他の方法でオーバーライドされない限り、デフォルトのポートは443
です。
TLSハンドシェイク がブラウザーとリモートサーバー間で発生すると、サーバーは信頼された証明書を提示し、要求されたアドレス(docs.tenantcompany.com
)でTLSサービスを提供できるようにします。
ブラウザはDNSをブラックボックスと見なします。適切なDNSライブラリを呼び出して、わかりやすい完全修飾ドメイン名(FQDN)から適切なIPアドレス(v4またはv6)へのマッピングを要求します。 そのIPアドレスの取得方法は関係ありません。元のレコードとDNSの間に20個のCNAME
エイリアスがある場合A
またはAAAA
レコード。DNSリゾルバーは、IPアドレスが取得されるまでそれらを追跡します。
ブラウザが TLSハンドシェイク を実行するとき、通信しているサーバーが、要求されたFQDNで安全なWebサイトサービスを提供することを承認されていることを確認する必要があります:docs.tenantcompany.com
。
覚えておいてください:ブラウザーはdocs.<tenant>.mycompany.com
を気にしません-DNSリゾルバーはCNAME
レコードを介して間接のすべての知識を抽象化しました。
サーバーがdocs.tenantcompany.com
で安全なセッションを提供することを承認する方法は、ブラウザのルート証明書ストアで事前の信頼が確立されている機関によって署名されたSSL証明書によるものです。これは、サーバーからクライアントへの認証の最も強力な形式であるとは限りません。一元化されたCAモデルでは、多くの点で失敗する可能性がありますが、現時点ではこれが最も優れています。
ここにはさらに2つの警告があります。
多くの商用SSL証明書ベンダーは、ワイルドカード証明書を単一の秘密鍵に効果的にバインドする単一の署名リクエストのみに署名します。秘密キーを所持している人は誰でも明らかに、テナント会社の他の安全なシステムとの通信を危うくすることができるので、テナント会社は組織の外でこれを不安に共有しているかもしれません。
一部のベンダーは、同じ証明書で複数の証明書署名要求に署名します。これにより、1つのワイルドカード証明書を、それらの間で秘密鍵を共有することなく複数のサーバーおよびシステムにインストールできます。
テナント会社からワイルドカード証明書のコピーが提供された場合(秘密キーを共有するか、独自のCSRに署名することにより)、<anydomain>.tenantcompany.com
になりすまして、特定されたサーバーの整合性を保証する重要な保護を解除できます。 tenantcompany.com
DNS名前空間。これは、法的/責任の観点から、あなたとテナント企業の両方にとって悪い立場になる可能性があります。