2009-09-04 11 views
3

SOAPとWSDLに基づいたWebサービスを使用する必要があります。 SOAP(https)は、認証にログイン、パスワード、証明書を使用します。 PHPの例:SOAPと証明書の承認

<? 
... 
$client->authtype = 'certificate'; 
$client->decode_utf8 = 0; 
$client->soap_defencoding = 'UTF-8'; 
$client->certRequest['sslcertfile'] = 'path_to_cert.crt'; 
$client->certRequest['sslkeyfile'] = 'path_to_private.key'; 
$client->certRequest['cainfofile'] = 'path_to_cacert.pem'; 
$client->call("method"); 
... 
?> 

これをC#でどうやって行うことができますか?私はVS2008でサービス参照を追加し、これを試してみてください。

var ya = new YAPI.APIPortClient(); 
ya.Open(); 
ya.PingAPI(); 

キャッチ例外:

は 権限 'サービスURL' がSSL/TLSのセキュリティで保護されたチャネルの信頼関係 を確立できませんでした。

var ya = new YAPI.APIPortClient(); 
ya.ClientCredentials.UserName.UserName = "login"; 
ya.ClientCredentials.UserName.Password = "pass"; 
ya.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(@"path_to_cert.crt"); 
ya.Open(); 
ya.PingAPI(); 

をし、同じ例外をキャッチ:

これを試してみてください。承認に合格するために私は何をする必要がありますか?答えをありがとう。申し訳ありませんが悪い英語:)

答えて

0

ユーザ名とパスワードが必要ない場合は、パスワードを設定している場合はクライアント証明書を使用しないでください。

証明書自体には、秘密鍵が含まれていることを確認してください。つまり、秘密鍵が埋め込まれたPKCS12ファイルです。

+0

私はcert.crtを持っていますが、秘密鍵は含まれていません。また、私はファイルprivate.keyを持っています。私はそれを使用する必要がありますか?はいの場合 - どのように? –

+0

秘密鍵と証明書を組み合わせる方法の1つは、openssl pkcs12コマンドです。http://www.openssl.org/docs/apps/pkcs12.html –

関連する問題