c# - C# 的 SNI 证书支持

标签 c# ssl sni

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

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

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

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

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

我错过了什么?任何好的文章/帮助将不胜感激。

最佳答案

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

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

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

关于c# - C# 的 SNI 证书支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51191644/

相关文章:

python - 使用带有 TLS 的请求不会提供 SNI 支持

c# - 无法识别的配置部分 log4net

c# - 在运行时重新编译 C#,没有 AppDomains

c# - 原始位图数据/扫描线(镜像驱动原始数据)?

java - 使用 Tomcat 的 keystore 在 Tomcat 中进行 SSL 客户端调用

apache-httpclient-4.x - 如何使用 Apache HTTPComponents HttpClient 在 HTTP 请求中启用 SNI?

c# - 具有动态参数的整数类型预期开关的值

perl - 我无法使用 LWP::UserAgent 连接到任何 HTTPS 站点

ruby-on-rails - RubyMine Rails 5 Savon net_http Errno::ECONNRESET SSL_Connect

android - url中使用IP时如何分配SNI?