我正在尝试发送请求:
ActiveXObject("WinHttp.WinHttpRequest.5.1")
但是,这需要客户端证书(我们已经提供)。
在 PHP cURL 中测试后,我可以这样做:
curl_setopt($SOAP, CURLOPT_SSLCERT,$filepathtocertificate);
哪个工作正常。但是我必须使用运行 asp(javascript) 的 IIS 并指向运行脚本的机器的证书存储:
SetClientCertificate("LOCAL_MACHINE\\Personal\\Certificate subject");
用于我们的实际部署。MS 文档(http://msdn.microsoft.com/en-us/library/windows/desktop/aa384055(v=vs.85).aspx)建议上面的路径必须说明证书的“主题” ,但是证书似乎有几个主题,并且没有几个或所有主题的组合似乎产生任何结果,甚至在发送请求之前我就遇到了以下错误:
WinHttp.WinHttpRequest error '80072f0c'
A certificate is required to complete client authentication
查看证书存储并使用同一文件夹中的其他脚本表明它们肯定存在,但主题如下:
C=US, O=Organisation NAme, OU="Another Organisation Name, Inc.", CN=Organisation Name Root
或类似的。
任何关于需要提供哪些参数 SetClientCertificate 以在证书存储中选择和发送证书的建议将不胜感激。