让serverxmlhttp忽略选项client-certificate的请求

时间:2011-06-21 09:51:14

标签: client-certificates serverxmlhttp

我想要访问的某个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忽略客户端证书的可选(!)请求并继续进行基本身份验证?或者我可以使用其他组件?

注意:

  • 我无法更改网络服务器上的设置或获取客户端证书。
  • 我也尝试过WinHTTP.WINHTTPRequest.5.1,但这没有帮助。
  • 请记住:此问题与客户端证书有关。 objXMLHTTP.setOption(2) = 13056只会忽略服务器证书错误。

1 个答案:

答案 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服务器的信任

相关问题