【问题标题】:Enabling TLS 1.2 on a windows executable which is in .Netframework 2.0在 .Net Framework 2.0 中的 Windows 可执行文件上启用 TLS 1.2
【发布时间】:2020-10-13 05:40:37
【问题描述】:

我的桌面(Windows 10 桌面)上有一个 Windows 可执行应用程序,它是在 .Net framework 2.0 (v2.0.50727) 中构建的,我需要为此启用 TLS 1.2 与服务器的通信(服务器当前仅支持 TLS 1.2流量)并且现在正在阻止应用程序:

以下是有关该应用程序的一些详细信息:

  1. exe 文件调用安装在我桌面上的 SAP SQL Anywhere 12 上的 dbmlsync.exe(我在互联网上阅读过 SQL Anywhere 12 默认支持 TLS 1.2),所以应该不是问题。
  2. 我可能无法更改可执行文件的代码(因为这是一个非常旧的代码),并且我正在检查强制应用程序使用操作系统上启用的 TLS 的方法。

以下是我所做的更改:

  1. 我已对可执行文件的配置文件进行了更改,以在运行时使用 .NetFramework 4.0,并默认使用操作系统上启用的 TLS。 (.Network 4.0 在我的桌面上可用)。

  2. 在我的桌面注册表中进行了更改 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v2.0.50727 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework\v2.0.50727 创建一个新条目 SystemDefaultTlsVersions,并将 DWORD 值设置为 1。

在以下位置创建注册表项 DefaultSecureProtocols:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet 设置\WinHttp HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp 将 TLS 1.2 的 DWORD 值设置为 800。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols 创建了一个文件夹作为 TLS 1.2 和它下面的两个子项 Client 和 server 并且两者的 DisabledByDefault 为 0 和 Enabled 为 1。

完成所有这些更改后,我重新启动了我的机器并使用 Netmon 进行了验证,该应用程序仍然将协议发送为 TLS 1.1。有人可以帮忙吗?我已经阅读了许多问题。Net 2.0 应用程序可以启用以使用 TLS 1.2 而无需更改代码。我尝试了各种建议,但没有什么对我有太大帮助

【问题讨论】:

  • 这是我作为第 1 点的一部分包含在应用程序配置文件中的更改

标签: ssl tls1.2


【解决方案1】:

我不知道你在哪里看到 SQL Anywhere 12 默认支持 TLS 1.2 但这是错误的。

“SQL Anywhere Web 服务器支持使用 SSL 3.0 版和 TLS 1.0 版的 HTTPS 连接。”在SQL Anywhere 12 documentation

不幸的是,您的服务器必须支持 TLS 1.0 才能正常工作。

  1. SQL Anywhere 12 -> TLS 1.0
  2. SQL Anywhere 16 -> TLS 1.1
  3. SQL Anywhere 17 -> TLS 1.2

【讨论】:

    猜你喜欢
    • 2018-10-31
    • 2017-05-26
    • 2023-03-08
    • 2018-12-26
    • 2017-05-19
    • 2017-10-23
    • 2017-12-03
    • 2016-08-15
    • 2017-10-07
    相关资源
    最近更新 更多