【发布时间】:2018-03-26 17:15:28
【问题描述】:
我正在使用我继承的经典 asp 脚本。我正在尝试连接 TLS 1.2,但遇到了问题。当我尝试运行以下命令时出现 500 错误:
<%
Const WinHttpRequestOption_SecureProtocols = 9
Const SecureProtocol_SSL2 = 8, SecureProtocol_SSL3 = 32, _
SecureProtocol_TLS1 = 128, SecureProtocol_TLS1_1 = 512, _
SecureProtocol_TLS1_2 = 2048
Set objHttp = Server.CreateObject("WinHTTP.WinHTTPRequest.5.1")
objHttp.option(9) = 128
objHttp.open "GET", "https://howsmyssl.com/a/check", false
objHttp.Send
Response.Write objHttp.responseText
Set objHttp = Nothing
%>
如果我取消选项 (9),它运行得很好,但不通过 TLS 1.2 连接。服务器注册表已更新,通过 SSL Labs (https://www.ssllabs.com/ssltest/index.html) 检查服务器显示服务器已全部设置为 TLS 1.2。
这是在 Windows 2008 Server(不是 R2)上。关于如何让事情运行 TLS 1.2 的任何想法?
【问题讨论】:
-
不是 100%。我知道当我在 SSL Labs 上运行测试时,它表明 TLS 1.2 有效,但我无法以编程方式使用它。如何确定?
-
我认为 Windows 2008 没有太多选择,因为启用 TLS 1.1 和 TLS 1.2 支持 WinHttp 的补丁,KB3140245,仅适用于 Windows 2008 R2 及更高版本.
-
我在服务器上运行了 TLS 1.2,我只是在经典 ASP 脚本中以编程方式访问它时遇到问题。这可能是某个地方的 IIS 设置吗?
-
我们正在寻求关闭 TLS 1.1,然后使用来自 Windows Server 2016 服务器的 winhttp.dll 副本覆盖服务器上的 winhttp.dll,以查看这是否是临时修复...请注意,这是一台 2008 R2 机器...很快就会更新。
标签: asp-classic