web-dev-qa-db-ja.com

同じIP上の複数のSSLサイトで同じワイルドカード証明書を使用してSNIを有効にする必要はありませんか?

IISサーバーホスティング:

example.com/www.example.com
sub1.example.com
sub2.example.com

これらはIISの下で3つの別個のサイトとしてリストされており、すべて443のHTTPSを介して同じIPにバインドされています。

このシナリオでは、私の理解ではSNIは必要ないということです。サーバーが要求に対応する証明書(同じ証明書)はすべてのサイトで機能します。私はそれを自分でテストしましたが、機能しているようですが、そうすることで特定のユーザーに予期しない悪い結果が生じないことを確認したいだけです(Windowsが必要なので、可能な限りSNIを使用したくありませんXPこれらのサイトのサポート)

好奇心から、このような設定(同じIPでSSLを使用する複数のサイトでSNIを有効にしない)がある場合、どのように正確にIISがどの証明書を提供するかを決定します( IPでの最初の443バインディング?それとも最後に使用したもの?)

さらに、この設定が機能する場合、将来、example.orgを同じIISサーバーに追加し、別のSSL証明書を使用する場合、example.orgのみにSNIを有効にして、他の3つのサイトには影響しませんか?

4
user683202

経験則は、HTTP APIレベルでは、

  • 単一証明書をIPベースのマッピングとしてIP:443にバインドできます。
  • 証明書をSNIマッピングとしてdomain:443にバインドできます。

このようなマッピングは、 Jexus Manager を使用して視覚的に分析できます。

SSL/TLSハンドシェイクが開始されると、SNIマッピングが最初にスキャンされ、リクエスト内のホスト名と一致します(SNI対応ブラウザーから)。一致するSNIマッピングがない場合、IPベースのマッピングがスキャンされます。それが解決の順番です。

IIS Managerでサイトを構成すると、マッピングが作成および更新されます。ただし、HTTP APIでのこのようなマッピングは、IIS構成とは異なります。これらのマッピングは、 IISのサイトは削除されます。

あなたの場合、ワイルドカード証明書しかないので、IIS Managerで複数のサイトを構成しても、IPベースのマッピングは上書きされず、問題なく動作するはずです。

ただし、別の証明書で2番目のドメインを構成しようとすると、同じIPアドレスを使用できません(そのIP:443マッピングは既に存在するため)。 IIS Managerで強制的に構成する場合は、以前の証明書を上書きする必要があります。もちろん、SNIマッピングを使用できます。

3
Lex Li

技術的に言えば、いいえ。すべてのWebサイトが同じ証明書を共有しているため、SNIは必要ありません。 IIS issmart十分(それは少なくとも)にHost: HTTPヘッダーを使用してWebサイトを区別する非SNIクライアント(おそらくSNI対応クライアントでも)なので、すべてが期待どおりに機能しています。

証明書の「優先順位」については、netsh http show sslcertを発行することでどの証明書が使用されているかを確認でき、特定のWebサイトのRequire Server Name Indicationオプションを無効にすることでデフォルトの証明書(非SNIクライアント用)を選択できます。ウェブサイトのバインディング設定ウィンドウ)。詳細はこちら: https://stackoverflow.com/questions/19565961/default-certificate-for-sni-server-name-indication

これは、3番目の質問にも回答するはずです。SNIを使用して別のWebサイトを追加しても、既存のWebサイトは変更されません(もちろん、別のドメインと別の証明書を使用することにより、example.orgにはSNI対応クライアント

5
Enrico