TLS 1.2 .net 4.6.2项目

时间:2019-08-08 07:42:08

标签: c# visual-studio tls1.2

在Global.asax的Appliction_Start方法(MVC5项目)中,我有这行代码应使用TLS1.2

    if (ServicePointManager.SecurityProtocol.HasFlag(SecurityProtocolType.Tls12) == false)
            {
                ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol | SecurityProtocolType.Tls12;
            }

检查

的值

ServicePointManager.SecurityProtocol

在运行时显示此值

System.Net.SecurityProtocolType.Ssl3 | System.Net.SecurityProtocolType.Tls | System.Net.SecurityProtocolType.Tls12

所以我假设正在使用TLS1.2,但是Firefox在控制台窗口中显示此消息

  

'此网站使用的TLS版本已弃用,该版本将在   2020年3月。请升级到TLS 1.2或1.3'

如何确保使用TLS 1.2?我正在使用.net Framework 4.6.2

3 个答案:

答案 0 :(得分:0)

在这一行:

ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol | SecurityProtocolType.Tls12;

您正在 Tls12添加到受支持的协议中。在握手期间,将根据客户端的功能选择这些受支持的协议之一。要仅支持 Tls12,请使用:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

答案 1 :(得分:0)

.NET 4.6.2默认情况下应使用TLS 1.2。您根本不需要的代码。 我的猜测是您可能使用的是不同的httpRuntime版本,从而导致了问题。

尝试从Global.asax中删除代码,并在httpRuntime中明确设置web.config版本:

<system.web>
  <httpRuntime targetFramework="4.6.2" />
</system.web>

答案 2 :(得分:0)

我知道了,问题出在IIS express。在本地运行该网站并打开控制台窗口给了我TLS错误消息,但是当我运行在Azure中部署的网站时,我不再收到该错误消息,所以一定是因为我是通过IIS Express在本地运行的