关于c#:.NET 4.5和.NET 4.5.1默认启用TLS 1.1和TLS 1.2

Is TLS 1.1 and TLS 1.2 enabled by default for .NET 4.5 and .NET 4.5.1

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

但是,我们有.NET 4.5 WCF服务正在运行。我们发现,如果禁用WCF服务不再运行的TLS 1.0,当我们得到错误"远程主机强制关闭了现有连接"。

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


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

  • .NET框架4.5和4.5.1:sslv3和tlsv1
  • .NET框架4.5.2:sslv3、tlsv1和tlsv1.1
  • .NET Framework 4.6及更高版本:tlsv1、tlsv1.1和tls1.2

资料来源:【1】【2】

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

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