ホストヘッダーに基づくSSL証明書の選択:可能ですか?


17

Webサーバーは、着信接続のホストヘッダーに基づいて使用するSSL証明書を選択することはできますか、またはSSL接続が確立された後にのみその情報を利用できますか?

それは私のウェブサーバがポート443に上場している場合foo.com証明書を使用することができ、あるhttps://foo.comが要求され、そしてもしbar.com証明書https://bar.comが要求されているか、私がやろうとしていますサーバーはクライアントが何を望んでいるかを知る前にSSL接続を確立しなければならないので、不可能なことはありますか?

回答:


23

歴史的に、最初の声明は正確です。現在、複数のオプションがあります。

  • 同じドメイン内にサブドメインがある場合のワイルドカード証明書。
  • 証明書の代替名を指定するSAN / UCC証明書。これにより、複数の証明書を提供できます。
  • SNIは、Hostヘッダーの後にSSL接続を確立するために導入されました。ただし、これは新しいため、サポートが制限されています。

これは、私自身や他の人によってServerFaultで何度も回答されています。特定の質問がない限り、詳細を検索することをお勧めします。


4
私は検索に行きましたが、何も見つかりませんでした。これはおそらく、答えがわかっている場合にのみ簡単に検索できるものの1つであり、検索用語に含めることができます。ありがとう。
-DrStalker

3
ServerFaultに既存の回答がある場合、それらへのリンクがあればよかったでしょう。
organicveggie

serverfault.com/search、@organicveggie。
ワーナー

3
SNIは、ホストヘッダーの後にSSL接続を確立しませんが、SSLハンドシェイクにホスト名を含めます。あなたがSSL開発者でない場合、それは重要ではありません。
バート・ヴァン・Heukelom

Serverfaultを検索すると、これが答えとなります。つまり、標準的には他の質問はすべてこの質問の複製です。そのリンクあなたが含まは結果を持っていません。
イアン・ボイド

5

Warnerの答えを拡張するには:CAcertのページVhost Task Forceは、単一のサーバーで複数のドメインを使用するいくつかの方法を比較します。私は個人的にServer Name Indicationを使用しています


Windows XPユーザー、Androidユーザー、Blackberryユーザーなどにどのように対処しますか?
thomasrutter

3

短い答え:いいえ

HTTPはSSL内にカプセル化されるため、接続が確立されるまで、リクエストに関する情報にはアクセスできません。したがって、証明書がクライアントに与えられるまで。まだ利用できないため、ヘッダーやその他の暗号化された情報を使用する方法はありません。

編集:これは、今日、クロスブラウザで完全にポータブルにしたい場合に当てはまります。他の人が言ったように、近い将来それを可能にするいくつかの新しい方法があります。


1

または、SSL接続が確立された後にのみ利用可能な情報ですか?

正しい。SSL要求は、HTTP要求の一部(ホストヘッダーを含む)が送信される前に確立されます。


2
それはもはや完全に正確ではありません。
ワーナー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.