我想要访问的某个SOAP网络服务器配置为“接受客户端证书”,但不需要!
当我直接在Internet Explorer中输入URL时,它会显示一个客户端证书(我没有)的弹出窗口。当我取消此对话框时,会弹出第二个对话框以输入用户名和密码。这与我的用户名和密码一起使用。
我正在尝试使用ServerXMLHTTP
在脚本中执行相同的操作var objXMLHTTP = new ActiveXObject("MSXML2.ServerXMLHTTP.6.0") // or 4.0
objXMLHTTP.open("POST",
"https://www.example.com",
false,
"username",
"password");
objXMLHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
// objXMLHTTP.setOption(2) = 13056; // This does not help
objXMLHTTP.send(XMLReq); // This fails
错误讯息为msxml6.dll: An unknown error occurred while processing the certificate.
或msxml6.dll: A connection with the server could not be established
如何让ServerXMLHTTP忽略客户端证书的可选(!)请求并继续进行基本身份验证?或者我可以使用其他组件?
注意:
objXMLHTTP.setOption(2) = 13056
只会忽略服务器证书错误。答案 0 :(得分:0)
为了让您了解更新并供将来参考:我放弃了。
据我所知,可以使用更低级别的win32 WinHTTP API完成。 我的猜测:我需要设置来自http://msdn.microsoft.com/en-us/library/aa384066%28VS.85%29.aspx的WINHTTP_OPTION_CLIENT_CERT_CONTEXT,但serverxmlhttp API仅限于支持它。
最后,我能够创建一个客户端证书,并让它受到SOAP服务器的信任