Alexandre
Здравствуйте!
У меня стоит задача подключиться к серверу защищенный WSE технологией + SSL.
У сервера есть несколько сервисов, т.е. несколько функций. Моя задача передать некую информацию в функцию и получить некий ответ.
В самом начале, я думал что пойдет данный код:
PHP:
/*Это я так предполагаю создание некого header'a*/
$client = new SoapClient("some.wsdl",
array('login' => "some_name",
'password' => "some_password",
'local_cert' => "servercert"));
/*Далее (видимо выше подключившь к сервису) я пытаюсь вызвать функцию и передать необходимые данные*/
$client->__call('SomeFunction',
array('first_atribute' => 'value1',
'second_atribute' => 'value2'));
Все. Ведь по идее для подключения к сервису, защищенному SSL и WSE, данной информации должно хватать. Но вот почему-то мне отдает ошибку:
Warning: SoapClient::SoapClient() [soapclient.soapclient]: Unable to set local cert chain file `/data/certificates/certif.cer'; Check that your cafile/capath settings include details of your certificate and its issuer in /data/www/somescript.php on line 42
Warning: SoapClient::SoapClient() [soapclient.soapclient]: failed to create an SSL handle in /data/www/somescript.php on line 42
Warning: SoapClient::SoapClient() [soapclient.soapclient]: Failed to enable crypto in /data/www/somescript.php on line 42
Сертификат СТО ПРОЦЕНТОВ верный. Что тут может быть не так? Уже читал на форуме, что могут возникать какие-то подобные проблемы с использованием сертификатов, но должного разъяснения как обойти данную проблему так и не нашел
Очень нужна Ваша помощь.
-~{}~ 16.09.08 14:27:
Хм.. установил данную библиотеку на сервак: http://wso2.org/projects/wsf/php
Там все хорошо расписано, но что-то у меня не получается зайти на сервер сервиса. Т.е. никак не могу въехать, какие там нужно указать атрибуты и, главное, как правильно их указать!?
Т.е. там должно быть по идее по пунктам:
1) Создать некий header (для ауентицикации в wsdl'е)
2) Создать XML запрос.
3) Подключить сертификат (напоминаю, в обычном браузере, при заходе на веб-сервис, необходимо лишь подтвердить согласие с данным сертификатом, т.е. тут не требуется никаких приватных ключей).
4) Отправить запрос именно на тот сервис, т.е. на интересующую меня функцию.
5) Получить и распарсить ответ (но главное пока что для меня получить).
Если кто встречался с данной библиотекой, и может ткнуть меня носом в определенные функции для реализации подключения к защищенному серверу, буду очень благодарен!
-~{}~ 16.09.08 16:36:
Кто может мне объяснить, в чем разница параметра "to" и "action" в данном коде?
PHP:
$reqPayloadString = <<<XML
<ns1:echo xmlns:ns1="http://wso2.org/wsfphp/samples">
<text>Hello World!</text>
</ns1:echo>
XML;
$reqMessage = new WSMessage($reqPayloadString,
array("to"=>"http://localhost/echo_service_addr.php",
"action" => "http://wso2.org/wsfphp/samples/echoString"));