我有一个django-python服务器,其VBA前端使用winhttp和REST API连接。因此,在这种情况下,发送和接收的请求是由我们控制并根据确定的。
前一段时间,当我们的服务器从SSL更新到TLS时,使用VBA Winhttp和REST API时,许多用户面临“连接异常终止”错误。我们使用现有的Microsoft文章来更新Windows 7上的用户计算机,问题已解决。最近,我遇到了一些相同的错误,在此之前,补丁/更新已被应用,或者其应用未能解决问题。
我根本看不到它们在我们的服务器日志中的传入流量(有些正在使用代理服务器),但是甚至没有代理服务器ip。
我正在尝试查找在哪里看或导致该问题的其他原因,以便我对其进行跟踪。任何想法/建议都值得赞赏。
来源:Update to enable TLS 1.1 and TLS 1.2 as default secure protocols in WinHTTP in Windows
答案 0 :(得分:0)
这供以后遇到类似问题的访问者参考:
一段时间以来,我一直在Windows 7客户端上遇到TLS问题,并根据下面概述的Microsoft文章进行了一轮修复:
步骤1。获取Microsoft更新KB3140245: 下载相关的(32位或64位用户的Windows版本) Microsoft Security Protocol Update并安装(如果尚未安装)。
步骤2。下载Microsoft Easy Fix: 从以下位置下载Microsoft“轻松修复” Microsoft Support Article,然后执行以将TLS 1.1+设置为默认值。
但是,后来,我又遇到了类似的问题,这使我意识到Microsoft页面上的修复工具不会设置所有注册表项(缺少SChannel注册表项)。因此,我设法通过设置“ Internet选项”和“ SChannel”将一些脚本放在一起以进行完整修复。需要添加TLS1.1 / 1.2的SChannel注册表项,以默认情况下为Winhttp设置启用TLS。
WinHttp键:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
==> DWORD DefaultSecureProtocols=0x00000A00 (32-bits and 64-bits)
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
==> DWORD DefaultSecureProtocols=0x00000A00 (64-bits)
频道键:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client
==> DWORD DisabledByDefault=0x00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client
==> DWORD DisabledByDefault=0x00000000
全面修复:Microsoft修补程序不能修复所有注册表项,以更新WinHTTP默认值并跳过SChannel项。因此,如果两步修复abpve无法解决问题,则该github项目包含用于下载和应用上面列出的所有必需的注册表修改的powershell脚本,并且可能对更全面的一次性修复有所帮助:Winttp-TLS