【问题标题】:WinHttp TLS connection in classic asp经典asp中的WinHttp TLS连接
【发布时间】:2015-05-19 20:14:42
【问题描述】:

我正在尝试将支付数据发送到 SagePay,由于他们关闭了 SSL,因此需要使用 TLS 发送。

我的代码如下:

set httpRequest = Server.CreateObject("WinHttp.WinHttprequest.5.1")
httpRequest.Open "POST", CStr(strPurchaseURL), false
httpRequest.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
httpRequest.send strPost
strResponse = httpRequest.responseText

有人告诉我,添加一个选项可以让您设置使用的协议,但我发现的唯一一个是:

httpRequest.option(9) = 2720

它允许 TLS 和 SSL,但它只能是 TLS,有没有人知道代码需要是什么,或者我应该做些什么。

【问题讨论】:

标签: ssl asp-classic opayo winhttp


【解决方案1】:

选项9WinHttpRequestOption_SecureProtocols 这是

SSL 2.0:0x0008
SSL 3.0:0x0020
传输层安全 (TLS) 1.0:0x0080

所以

httpRequest.option(9) = &H80

【讨论】:

  • 这似乎是正确的代码,但不确定它是否是正确的值。仍然收到:提供的证书已被 SagePay 撤销错误。
  • 查看WINHTTP_OPTION_SECURE_PROTOCOLS,这似乎表明除了三个选项之外还有更多选项 - 实际上它更像是六个。如果有人可以锻炼价值是什么,那么使用位标志永远不会有任何好处。
  • 当我尝试读取或写入 .Option(9) 时,我收到“无效的过程调用或参数”。其他选项(8、10 等)效果很好。有人知道为什么吗?
【解决方案2】:

如果您使用的是 Windows Server 2003,您可能会遇到与我相同的问题 - 如果您可以访问服务器,请尝试我在此处添加到我自己的问题中的答案:https://stackoverflow.com/a/29140418/1081692,然后看看您的情况如何。

【讨论】:

  • 我需要与托管公司核实,但我认为您是对的。谢谢!
猜你喜欢
  • 2016-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-19
  • 1970-01-01
相关资源
最近更新 更多