【发布时间】:2012-03-02 01:10:31
【问题描述】:
我支持通过 HTTPS 连接到支付网关的经典 ASP 应用程序。直到最近都没有问题。几天前,最新的更新安装在服务器 (Windows Server 2003) 上,导致网站崩溃。下面是一个代码 sn-p。
Dim oHttp
Dim strResult
Set oHttp = CreateObject("MSXML2.ServerXMLHTTP")
oHttp.setOption(2) = 13056
oHttp.open "POST", SOAP_ENDPOINT, false
oHttp.setRequestHeader "Content-Type", "application/soap+xml; charset=utf-8"
oHttp.setRequestHeader "SOAPAction", SOAP_NS + "/" & SOAP_FUNCTION
oHttp.send SOAP_REQUEST
下面是错误对象的转储:-
号码:-2147012852 描述:需要证书才能完成客户端身份验证 消息:需要证书才能完成客户端身份验证
起初我以为是因为支付网关的 SSL 证书没有经过身份验证,或者他们需要客户端证书。我在服务器上的浏览器中测试了该 URL,它正确显示且没有错误,并确认支付网关服务器不需要客户端证书。
我很茫然。我所做的所有研究都让我无处可去。我什至尝试了在 Stackoverflow 上找到的以下内容:-
Getting XMLHTTP to work with HTTPS
最后一个声明 XMLHTTP 需要客户端证书,即使服务器不需要它,并指出一篇关于如何安装的知识库文章,但那已经过时并且不起作用。
【问题讨论】:
-
我猜网关的 SSL 证书现在是由不在您服务器受信任的根权限列表中的人提供的,您需要像 curl 的
CURLOPT_SSL_VERIFYPEER这样的参数。如果有什么我会回来的。 -
你列出的第一个问题的答案是我一直在寻找的,应该对你有用。
-
我是帮助解决这个问题的系统管理员。第一个问题的答案并不能解决我担心的问题。实际上,该选项已在上述问题中发布的代码中设置。除此之外,这至少发生在 3 个独立的服务器上,最近没有一个服务器看到任何配置更改,除非在问题开始发生后昨天/今天安装的 Windows 更新。在那之前的最后一次更新是在 11 月下旬。
-
使用纯 HTTP 有效,这证明代码是正确的。服务器上的某些东西正在阻止 XMLHTTP 使用 HTTPS 访问任何 URL。
标签: soap asp-classic https certificate xmlhttprequest