5

Microsoft.Web.Administration ライブラリ (.NET Framework) を使用して、フラグ SNI チェック (サーバー名表示) を持つ IIS 8 のバインドを作成しようとしています。

これは、IIS の下で同じ Web サイトに対して複数の SSL バインディングを取得したいので、すべて 1 つの IP アドレスを使用する必要があるためです。これは、IIS 8 の主な新機能の 1 つです。

Binding クラスを調べましたが、それを示すフラグやオプションが見つかりません。

現在の Microsoft.Web.Administration v 7.0.0.0 で可能ですか? まだ見つかっていない新しいバージョンが必要ですか?

バージョン 7.9.0.0 は IIS Express 専用であることは知っていますが、これは私のシナリオではないため、調べていません。

4

2 に答える 2

8

私は最終的にMicrosoft.Web.Administrationフォルダーからを使用してそれを行うこと%windir%\system32\inetsrv\ができましたが、 IIS 8を搭載した Windows 8/Windows 2012でのみでした。

これらのライブラリには、クラスの関数にSslFlagsオプションがありました。この新しいオーバーロードに関するマイクロソフトのドキュメントはまだありません。少なくとも私は見つけていません。AddBindingCollection

はこれSslFlags.Sniで使用でき、SNI チェックを使用してバインディングを完全に作成します。

于 2013-12-18T14:04:31.290 に答える
3

現在の Microsoft.Web.Administration v 7.0.0.0 で可能ですか?

実際、ノードにSslFlags属性を手動で追加することにより、次のようになります。<binding>

Binding mySslBinding;
bool enableSni;

using (var serverManager = new ServerManager())
{
    // ... create or get value of mySslBinding...

    mySslBinding.SetAttributeValue("sslFlags", Convert.ToInt32(enableSni ? 1 : 0));

    serverManager.CommitChanges();
}

ここのドキュメントを参照してくださいSslFlags: https://docs.microsoft.com/en-us/iis/configuration/system.applicationhost/sites/site/bindings/bindings

上記のコードを 8.0 より前のバージョンの IIS を搭載したマシンで実行すると、これらのバージョンには存在しないCommitChanges()ため、メソッドは例外をスローすることに注意してください。sslFlags

警告: 既存のバインディングで SNI を有効にすると、その証明書が選択解除される可能性があります!

Server Name Indication (SNI) を設定すると、証明書のバインドが解除されるも参照してください。

この問題を回避するには、次のようにします。

var cert = mySslBinding.CertificateHash;
mySslBinding.SetAttributeValue("SslFlags", Convert.ToInt32(1));
mySslBinding.CertificateHash = cert;
于 2015-03-19T08:19:06.203 に答える