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つのサイトには影響しませんか?
経験則は、HTTP APIレベルでは、
このようなマッピングは、 Jexus Manager を使用して視覚的に分析できます。
SSL/TLSハンドシェイクが開始されると、SNIマッピングが最初にスキャンされ、リクエスト内のホスト名と一致します(SNI対応ブラウザーから)。一致するSNIマッピングがない場合、IPベースのマッピングがスキャンされます。それが解決の順番です。
IIS Managerでサイトを構成すると、マッピングが作成および更新されます。ただし、HTTP APIでのこのようなマッピングは、IIS構成とは異なります。これらのマッピングは、 IISのサイトは削除されます。
あなたの場合、ワイルドカード証明書しかないので、IIS Managerで複数のサイトを構成しても、IPベースのマッピングは上書きされず、問題なく動作するはずです。
ただし、別の証明書で2番目のドメインを構成しようとすると、同じIPアドレスを使用できません(そのIP:443マッピングは既に存在するため)。 IIS Managerで強制的に構成する場合は、以前の証明書を上書きする必要があります。もちろん、SNIマッピングを使用できます。
技術的に言えば、いいえ。すべての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対応クライアント)