当前的 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/binding
请注意,在具有任何早于 8.0 的 IIS 版本的机器上执行上述代码将导致该CommitChanges()
方法引发异常,因为sslFlags
这些版本中不存在。
警告:在现有绑定上启用 SNI 可能会导致其证书被取消选择!
另请参阅设置服务器名称指示 (SNI) 取消证书绑定
为避免此问题,您可以执行以下操作:
var cert = mySslBinding.CertificateHash;
mySslBinding.SetAttributeValue("SslFlags", Convert.ToInt32(1));
mySslBinding.CertificateHash = cert;