web-dev-qa-db-ja.com

cnameレコードを持つURLを保護します

各ユーザーのサブドメインとワイルドカードSSL証明書を持つサイトがあります

https://user1.mysite.com

https://user2.mysite.com

問題は、誰かがuser1.theirsite.com-> user1.mysite.comなどのcnameレコードを設定し、それでもhttpsを使用できるかどうかです。

接続を保護するためにサーバーにSSL証明書をインストールすると機能しますか?

ありがとう

12
bones

これが機能するための最良の方法は、あなたと SSL証明書にSubject Alternate Name拡張子としてあなたの X.509に「エイリアス」を含めるように手配することです。証明書。

これは、一部のCDNがクライアントのhttpsサイトをホストするときに使用するアプローチです。1つのサーバーでホストされているすべての既知のサイト名を1つの大きなSSL証明書に入れ、クライアントはCNAMEを使用して適切なCDNサーバーのドメイン。

13
Alnitak

ホスト名と証明書の検証(実際には、SSLが使用されていることの確認)は、クライアントの責任です。

ホスト名の検証は、クライアントがURLで要求したホスト名に基づいて、 RFC 2818 で指定されているようにクライアントによって実行されます。ホスト名のDNS解決がCNAMEエントリに基づいているか、それとも他の何かに基づいているかは関係ありません。

ユーザーがブラウザにhttps://user1.theirsite.com/と入力している場合、ターゲットサイトの証明書はuser1.theirsite.comに対して有効である必要があります。

user1.theirsite.comとは異なるuser1.mysite.com用の独自のサーバーがある場合、DNSCNAMEエントリは意味がありません。 2つのホストが事実上別個であると仮定すると、それらはuser1.theirsite.comに対して独自の有効な証明書を持ち、https://user1.theirsite.com/にリダイレクトすることができます。リダイレクトはアドレスバーにも表示されます。

user1.theirsite.comからuser1.mysite.comまでのCNAMEが本当に必要な場合は、サーバー名表示を使用して、サイトでもホストできるように、証明書と秘密鍵を提供できる可能性があります(同じと仮定)ポート、そしてもちろんCNAMEを使用しているので同じIPアドレス)。これは、SNIをサポートするクライアントで機能します。ただし、秘密鍵を提供することには一定のリスクがあります(これは一般的には推奨されません)。

12
Bruno

以下がセットアップされ、機能しています。

a.corp.com-> CNAME b.corp2.com-> A 1.2.3.4のDNSエントリ

1.2.3.4のhaproxyはa.corp.comの証明書を提供し、サイトはWebサーバーバックエンドから正常にロードされます。

したがって、サーバーにはuser1.theirsite.com certが必要であり、それは機能します。

0
ffghfgh