HTTPListener在.NET 4.6和Server2012R2上不使用TLS 1.1 / 1.2

时间:2018-04-24 13:21:41

标签: c# .net http tls1.2

我已经在服务器2012 R2计算机上使用带有“https”前缀和链接证书的HTTPListener建立了一个简单的.NET 4.6 Web服务器。 https接口可以工作,但只使用TLS 1.0而不是1.1或1.2,默认情况下服务器2012应该支持。

到目前为止,我试图强制系统使用TLS 1.2:

  • 在TLS 1.2的注册表中添加并启用了SCHANNEL协议
  • 在.NET框架的注册表中添加并启用了SchUseStrongCrypto
  • 在注册表中禁用了TLS 1.0和SSL的SCHANNEL协议
  • 通过System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
  • 进行硬编码

但这些似乎都没有达到预期的效果。当通过SCHANNEL注册表禁用SSL和TLS 1.0时,Web服务器将无法访问。

已安装Framework .NET 4.6.2。可执行文件是针对.NET 4.6构建的。任何提示?

干杯。

1 个答案:

答案 0 :(得分:0)

在答案中键入它可能仍然有用,而不仅仅是注释

就我而言,我能够通过Fiddler查看主要的SSL握手并查看选择了哪个密码套件-尽管我的案例是SSL客户端向服务器请求具有TLS1.2的强特定密码才能工作,但我认为这样做反过来也没什么不同。 其次,我已经启用了您在问题中提到的所有内容,此外,我还必须在app config文件中启用这些功能,才能使其正常工作。

<compilation targetFramework="4.6" />
<httpRuntime targetFramework="4.6" />