我正在尝试使用Microsoft.Web.Administration库(.NET Framework)为IIS 8创建已检查标志SNI(服务器名称指示)的绑定。
这对我来说是必要的,因为我想在IIS下为同一个网站获得多个SSL绑定,所有这些只使用一个IP地址。这是IIS 8的主要新功能之一。
我一直在研究Binding类,我找不到任何标记或选项来表明它。
目前的Microsoft.Web.Administration v 7.0.0.0是否可以实现? 我需要一个我没找到的新版本吗?
我知道版本7.9.0.0仅适用于IIS Express,而不是我的场景,所以我没有调查过。
答案 0 :(得分:8)
我终于设法使用文件夹Microsoft.Web.Administration
中的%windir%\system32\inetsrv\
但仅在Windows 8 / Windows 2012 中使用 IIS 8 。
这些库在SslFlags
类的Add
函数中具有BindingCollection
选项。对于这个新的重载,还没有来自微软的文档,或者至少我还没有找到它。
SslFlags.Sni
可以在这个中使用,并且可以完美地创建与SNI检查的绑定。
答案 1 :(得分: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));
serverManager.CommitChanges();
}
请注意,在任何版本的IIS早于8.0的计算机上执行上述代码会导致CommitChanges()
方法抛出异常,因为sslFlags
在这些版本中不存在。