DER 証明書 (つまり、証明書に秘密鍵がないことを意味します) を使用して SOAP - PHP 要求を送信しようとしていますが、成功しません。
$local_cert = FULL_PATH_TO_MY_CERT;
$client = new SoapClient($wsdl, array(
'local_cert' => $local_cert,
'trace' => 1,
'exceptions' => 1,
'soap_version' => SOAP_1_1,
'encoding' => 'ISO-8859-1',
'compression' => (SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP),
'location' => 'https://webserviceurl:port/ws/servlet/ws'
));
私だけがこのエラーを受け取ります:
警告 (2): SoapClient::SoapClient() [soapclient.soapclient]: 秘密鍵ファイル `PATHTOMYLOCALCERT' を設定できません [APP\Vendor\WebServices\MyWS.php、206 行目]
警告 (2): SoapClient::SoapClient() [soapclient.soapclient]: SSL ハンドルの作成に失敗しました [APP\Vendor\WebServices\MyWS.php、206 行目]
警告 (2): SoapClient::SoapClient() [soapclient.soapclient]: 暗号化を有効にできませんでした [APP\Vendor\WebServices\MyWS.php、206 行目]
警告 (2): SoapClient::SoapClient(https://webserviceurl:port/ws/servlet/ws?wsdl) [soapclient.soapclient]: ストリームを開くことができませんでした: 操作に失敗しました [APP\Vendor\WebServices\MyWS.php, 206行目]
警告 (2): SoapClient::SoapClient() [soapclient.soapclient]: I/O 警告: 外部エンティティ "https://webserviceurl:port/ws/servlet/ws?wsdl" [APP\Vendor\WebServices] の読み込みに失敗しました\MyWS.php、206行目]
しかし、関数 file_get_contents($local_cert); を使用して (php.net で) ちょっとしたトリックを見つけました。エラーはなくなりました。
しかし、新しいエラーが発生します。
結果: string(773) 「プレフィックスの読み取りエラー:Action.Execute」
私が言いたいのは...上記のこのエラーは... WebServiceから来ているのですか? 私のリクエストで認証できないからですか?
みんなありがとう。(あなたの答えに感謝します)