【问题标题】:TLS 1.2 being used regardless of .net code using TLS 1.1无论使用 TLS 1.1 的 .net 代码如何,都使用 TLS 1.2
【发布时间】:2019-07-02 12:28:10
【问题描述】:

我正在尝试确认我的应用程序正在使用 TLS 1.2 连接到 SQL Server。我可以看到它使用 Wire Shark 使用 1.2 进行连接,但我想确认当我切换回 1.1 时它显示 1.1。但是,当我在代码中切换到 1.1 时,它仍然在 Wireshark 中显示 TLS 1.2。为什么无论如何都要使用 TLS 1.2?恐怕它总是显示 TLS 1.2 只是为了握手,但它实际上并没有与 TLS 1.2 连接。它也没有在 Windows 网络分析器中显示服务器问候,就像我在其他 Stack Overflow 帖子中读到的那样。它只显示客户端你好。服务器你好有必要吗?由于它使用的是 TDS,我不确定服务器 hello 是否应该在那里。

//当我使用此代码时,它显示为在 Wire Shark 中使用 tls 1.2

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11;

【问题讨论】:

  • 我通过在注册表中禁用 TLS 1.2 解决了这个问题,Wireshark 开始显示它使用 TLS 1.1。因此,似乎将 c# 代码更改为使用 TLS 1.1 实际上并没有强制它使用 1.1,但似乎使其成为最低要求。当我强制 Windows 禁用 1.2 时,Wireshark 反映了 TLS 1.1。如果有人遇到此问题,只需知道 C# 选项在指定时不会强制使用较低的 TLS 版本。并不是我对 Windows 选择更好的协议规范不满意,而是我想确保它确实使用 TLS 1.2。

标签: .net sql-server


【解决方案1】:

手动将 C# TLS 版本更改为较低的数字会设置最低要求。您将被推到您在建立连接的客户端计算机上设置的任何最高版本。例如,如果您有 TLS 1.2,那么在 C# 客户端上设置 TLS 1.1 不一定会使用 1.1,而是使用 1.2。

【讨论】:

    猜你喜欢
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 2018-08-06
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 2020-02-15
    相关资源
    最近更新 更多