現在の 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;