【发布时间】:2015-08-07 21:17:07
【问题描述】:
我要连接的服务器需要 TLS 1.1。我的尝试失败了。我在使用经典 ASP 的 Windows Server 2008 R2 Standard SP1 64 位机器上。
这是我的代码:
const WinHttpRequestOption_SecureProtocols = 9
const SecureProtocol_TLS1_1 = 512
dim objHTTP
set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
没有错误:
objHTTP.Option(9) = 128
'没有错误:
objHTTP.Option(9) = &H80
'这里有错误:
objHTTP.Option(WinHttpRequestOption_SecureProtocols) = SecureProtocol_TLS1_1
'这里有错误:
objHTTP.Option(9) = 512
'这里有错误:
objHTTP.Option(9) = &H200
无论我将这一行放在代码中的哪个位置,当它尝试执行时,我仍然会收到此错误:
Microsoft VBScript 运行时错误“800a0005”
无效的过程调用或参数:'Option'
我的服务器浏览器是 IE8,所以我安装了 IE11,希望得到更好的结果。同样的错误。
我将IE11的Internet选项设置为
- (未选中)使用 SSL 2.0
- (未选中)使用 SSL 3.0
- (未选中)使用 TLS 1.0
- (选中)使用 TLS 1.1
- (选中)使用 TLS 1.2
在注册表中:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\
我将 TLS 1.1 和 1.2 设置为 enabled=1 和 DisabledByDefault=0
其余的都是相反的。
我在/ControlSet001/ 和/ControlSet002/ 做了同样的事情
为什么我不能设置objHTTP.Option(9) = 512?
额外问题:为什么 WinHttp 坚持使用 TLS 1.0 而不管我的服务器设置如何?
【问题讨论】:
-
感谢您的建议。这些是我可以用于 Option(9) 且不会出错的唯一值:8 32 40 128 136 160 168
标签: ssl asp-classic windows-server-2008 winhttp