.NET 4.5和.NET 4.5.1默认启用TLS 1.1和TLS 1.2

在我们的Windows 2012 Server R2上,我们需要禁用TLS 1.0。

但是我们运行.NET 4.5 Wcf服务。 我们发现,如果我们禁用TLS 1.0,WCF服务不再运行,因为我们收到错误’现有连接被远程主机强行关闭’。

.NET 4.5和.NET 4.5.1中是否默认启用了TLS 1.1 / 1.2? 如果没有,我们假设是这样,在我们的WCF项目中,我们强制项目使用TLS 1.1 / 1.2?

不可以。为各种框架版本启用的默认协议是:

  • .NET Framework 4.5和4.5.1:SSLv3和TLSv1
  • .NET Framework 4.5.2:SSLv3,TLSv1和TLSv1.1
  • .NET Framework 4.6及更高版本:TLSv1,TLSv1.1和TLS1.2

资料来源: [1] [2]

您可以使用ServicePointManager类指定应用程序支持的协议,特别是通过设置SecurityProtocol属性,在您的情况下,您需要将其设置为以下内容:

 System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;