2011-07-26 17 views
7

Microsoft WebサービスにMicrosoft C#を使用して接続しています。私は、ユーザー名、パスワード(C#のコードで)を提供する必要があります。システムの証明書の「ルート認証局」セクションに証明書(.cer形式)をインストールします。ユーザ名、パスワード、認証局のみを指定してPHPでWebサービスに接続

PHPでこのようなWebサービスに接続するにはどうすればよいですか?私が尋ねる理由は、私が見たすべてのメソッド(SoapClientサブクラスを作成するwsdl2phpなど)は、SSL証明書、SSLキーファイル、SSLキーパスフレーズなど、さまざまなことを想定しているようです。

だから私はすべて私を混乱させる。私はどこに行かなければならないのか分からない。私は自分の "ルート認証局"(.cerファイル)がどこに行くべきか、そしてユーザー名とパスワードがどこに行くべきかわからない。何か案は?

答えて

5

すべてがssl options

<?php 
$context = stream_context_create(array(
    'https' => array(
    'cafile' => '/path to file', 
    'verify_peer' => true 
))); 

new soapclient("https://localhost/index.php?wsdl",array(
    'login'=>'admin', 
    'password'=>'passss', 
    'stream_context'=> $context 
)); 

を使用してsoapclientstream_context_create whith行うことができ、それは、HTTP認証を使用しないように石鹸では珍しいことではありませんが、ちょうど石鹸コール、documnetationが不可欠である

それはすることができますsoapclient whithクラスを使ってクラスを使ってソープタイプをphpクラスにマップすることで報酬を受ける

+0

NuSOAPでこれを行うことができるコードがありますか? PHPの警告:SoapClient :: __ doRequest():SSL:22行目の/Users/enchilada/Desktop/test.phpのピアによる接続リセットPHP致命的なエラー:未知のSoapFault例外: [HTTP] Error /Users/enchil/Desktop/test.php:22 – Enchilada

+1

でhttpヘッダーを取得すると、libssl、curl、libxml(inst。&linuxでない場合)をインストールし、PHPを更新します。このエラーを指摘するバグがあります。それがうまくいかない場合、インスタンス作成のトレースオプションwireshark – borrel

+0

私はこれらを試してみます。ありがとう。それでもうまくいかなければ、私はあなたに戻ってきます。 – Enchilada

0

通常はあなたが定期的にSSLを使用してWebサービスを呼び出している場合は、あなたのURLは次のようになります。

https://username:[email protected]/mywebservice.php

そして、SSL証明書の問題があります。私はSSLで保護されたSVNのWebフロントから読み込むのに似た何かを使用しています。 Webサーバー(Apache/IIS)を実行しているユーザーとしてサーバーにログインし、証明書を手動で受け入れる以外の方法はありません。 SVNの場合は、チェックアウトを行うことができ、証明書を受け入れるよう求められます。私はこれがどのようにプレーンなHTTPSリクエストではうまくいくか完全にはわかりませんが、Webサービスをブラウザにロードして証明書を入手できるのでしょうか? (または、あなたがLinuxを走らせることができるほど幸運であれば、wgetなどを使ってください)

あなたのコードはPHPコードかC#コードですか?それがC#なら、あなたは完全に別の何かをする必要があるかもしれません。

関連する問題