1

到達したい特定のSOAPWebサーバーは、「クライアント証明書を受け入れる」ように構成されていますが、それらを必要としません。

Internet Explorerに直接URLを入力すると、クライアント証明書(私は持っていません)のポップアップが表示されます。このダイアログをキャンセルすると、ユーザー名とパスワードの2番目のダイアログがポップアップ表示されます。これは私のユーザー名とパスワードでうまく機能します。

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にクライアント証明書のoptional(!)要求を無視させ、基本認証を続行するにはどうすればよいですか?または、他にどのようなコンポーネントを使用できますか?

ノート:

  • Webサーバーの設定を変更したり、クライアント証明書を取得したりできません。
  • WinHTTP.WINHTTPRequest.5.1も試しましたが、役に立ちませんでした。
  • 覚えておいてください:この質問はクライアント証明書に関するものです。サーバー証明書エラーobjXMLHTTP.setOption(2) = 13056のみを無視します。
4

1 に答える 1

0

あなたを最新の状態に保ち、将来の参考のために:私はあきらめました。

私が理解した限りでは、より低レベルのwin32WinHTTPAPIを使用して実行できます。私の推測:http://msdn.microsoft.com/en-us/library/aa384066%28VS.85%29.aspxのWINHTTP_OPTION_CLIENT_CERT_CONTEXTを設定して何かを行う必要があり ますが、serverxmlhttpAPIはそれをサポートするように制限されています。

最終的に、クライアント証明書を作成し、SOAPサーバーに信頼させることができました。

于 2011-07-10T13:36:21.627 に答える