C# 的 SNI 证书支持

SNI Certificate Support With C#

我想使用 C# 通过 SSL 证书 (windows10 + IIS:10.0.17) 支持 SNI。可以通过以下方式添加绑定:

website.Bindings.Add(szBinding, hashBytes, sslStore);

如何在新添加的绑定上应用 SNI?以下代码无效:

website.Bindings[0].SslFlags = SslFlags.Sni;

问题 Programmatically add binding on IIS 8 with SNI option 解决了这个问题,但问题正如我之前描述的那样,使用此标志 "SslFlags.Sni" 没有任何效果,即当我检查 IIS 中的绑定时,SNI 复选框仍未选中.意味着,设置此标志不会影响 IIS 中的绑定。我在 windows 10 上使用 IIS v.10.0.17。

我错过了什么?任何好的 article/help 将不胜感激。

绑定值存在问题。我使用的是 ip:port: 而不是 ip:port:hostname。使用带有主机名和 SNI 标志的绑定名称解决了这个问题。

此代码将添加启用 SNI 的绑定:

var szBinding = "IP:PORT:HOSTNAME";
website.Bindings.Add(szBinding, hashBytes, install.SslStore, SslFlags.Sni);