我的桌面(Windows 10 桌面)上有一个在 .Net Framework 2.0 (v2.0.50727) 中构建的 Windows 可执行应用程序,我需要启用与服务器的 TLS 1.2 通信(服务器当前仅支持 TLS 1.2 流量)现在正在阻止该应用程序:
以下是有关申请的一些细节:
以下是我所做的更改:
我已对可执行文件的配置文件进行了更改,以便在运行时使用 .NetFramework 4.0 并使用操作系统上默认启用的 TLS。 (.Netframework 4.0 在我的桌面上可用)。
对我的桌面注册表进行了更改 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework 2.0.50727 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework 2.0.50727 创建一个新条目 SystemDefaultTlsVersions,并将 DWORD 值设置为 1。
在以下位置创建注册表项 DefaultSecureProtocols:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\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\协议 创建了一个名为 TLS 1.2 的文件夹,并在其下创建了两个子项 Client 和 Server,并且两者的 DisabledByDefault 均为 0,Enabled 为 1。
完成所有这些更改后,我重新启动了计算机并使用 Netmon 进行了验证,应用程序仍然以 TLS 1.1 的形式发送协议。有人可以帮忙吗?我读过很多问题,无需更改代码即可启用 .Net 2.0 应用程序以使用 TLS 1.2。我尝试了各种建议,但没有什么对我有太大帮助
我不知道您在哪里看到 SQL Anywhere 12 默认支持 TLS 1.2,但这是错误的。
“SQL Anywhere Web 服务器支持使用 SSL 版本 3.0 和 TLS 版本 1.0 的 HTTPS 连接。”关于 SQL Anywhere 12 文档。
因此,不幸的是,要工作,您的服务器必须支持 TLS 1.0。
分步指南:
前往运行(按 Win + R)
输入 regedit 并按 Enter 键。注册表编辑器窗口将打开。
或在 Windows 搜索栏中搜索注册表编辑器。
执行以下步骤启用 TLS 1.2
启用 TLS 1.2
转到以下路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
右键单击右侧窗格中的空白区域,然后选择“新建”>“密钥”
将新密钥命名为 TLS 1.2
再次右键单击右侧空白处,添加两个新键,分别命名为Client和Server
选择Client key,在右侧右键单击,选择New -> DWORD (32-bit) Value
将 DWORD 命名为 DisabledByDefault,右键单击它,然后选择修改。基数应设置为十六进制,值设置为 0:
创建一个名为 Enabled 的新 DWORD。基数应设置为十六进制,值设置为 1
对服务器密钥重复此过程,使用相同的值创建相同的 DWORDS
转到以下路径:[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft.NETFramework 4.0.30319]
右键单击 v4.0.30319 并选择新建 -> DWORD(32 位)值
将 DWORD 命名为 SystemDefaultTlsVersions,右键单击它,然后选择修改。基数应设置为十六进制,值设置为 1
类似地创建新的DWORD SchUseStrongCrypto,右键单击它,然后选择修改。基数应设置为十六进制,值设置为 1
转到以下路径:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework 4.0.30319]
右键单击 v4.0.30319 并选择新建 -> DWORD(32 位)值
将 DWORD 命名为 SystemDefaultTlsVersions,右键单击它,然后选择修改。基数应设置为十六进制,值设置为 1。
类似地创建新的DWORD SchUseStrongCrypto,右键单击它,然后选择修改。基数应设置为十六进制,值设置为 1。
重新启动系统。