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

不过,我们正在运行 .NET 4.5 Wcf 服务。

.NET 4.5 和 .NET 4.5.1 中默认启用 TLS 1.1/1.2 吗?

答案

.NET 4.5 和 .NET 4.5.1 中是否默认启用 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] [3]

而微软建议不要明确指定协议版本支持使用操作系统的默认设置:

为了确保 .NET Framework 应用程序保持安全,TLS 版本应该not被硬编码。

…仍然可以通过使用来选择您的应用程序支持的协议ServicePointManager类,特别是通过设置SecurityProtocol财产给相关SecurityProtocolTypes。

在您的情况下,您需要使用以下内容:

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

请注意,自 2020 年起,TLSv1 和 TLSv1.1 已被有效弃用;

来自: stackoverflow.com