【发布时间】:2020-10-13 05:40:37
【问题描述】:
我的桌面(Windows 10 桌面)上有一个 Windows 可执行应用程序,它是在 .Net framework 2.0 (v2.0.50727) 中构建的,我需要为此启用 TLS 1.2 与服务器的通信(服务器当前仅支持 TLS 1.2流量)并且现在正在阻止应用程序:
以下是有关该应用程序的一些详细信息:
- exe 文件调用安装在我桌面上的 SAP SQL Anywhere 12 上的 dbmlsync.exe(我在互联网上阅读过 SQL Anywhere 12 默认支持 TLS 1.2),所以应该不是问题。
- 我可能无法更改可执行文件的代码(因为这是一个非常旧的代码),并且我正在检查强制应用程序使用操作系统上启用的 TLS 的方法。
以下是我所做的更改:
-
我已对可执行文件的配置文件进行了更改,以在运行时使用 .NetFramework 4.0,并默认使用操作系统上启用的 TLS。 (.Network 4.0 在我的桌面上可用)。
-
在我的桌面注册表中进行了更改 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 点的一部分包含在应用程序配置文件中的更改