Как получить SSL-соединение с расширением PHP SOAP? - PullRequest
2 голосов
/ 05 ноября 2010

При попытке подключиться к конечной точке SSL с расширением PHP SOAP в Windows я получаю сообщение SoapFault «Не удалось подключиться к хосту».Сертификат клиента не является обязательным требованием службы.

$sslOptions = array(
    'ssl' => array(
        'cafile' => "c:/inetpub/wwwroot/eServices/Server_DSA_Public_Certificate.pem",
        'allow_self_signed' => true,
        'verify_peer' => false,
     ),
);      
$sslContext = stream_context_create($sslOptions);

$clientArguments = array(
    'stream_context' => $sslContext,
    'trace' => true,
    'exceptions' => true,           
    'encoding' => 'UTF-8',
    'soap_version' => SOAP_1_1,
);

$oClient = new WSSoapClient("c:/inetpub/wwwroot/eServices/svc.wsdl", $clientArguments);  
// WSSoapClient extends SoapClient to add a WS-Security UsernameToken header    

$oClient->__setUsernameToken("myusername", "mypassword");   
return $oClient->__soapCall($operation, $request);

Я преобразовал в формат .pem самоподписанный сертификат сервера (.cer), который мне дали, и передаю его как 'cacert'.

Могу получить доступ к сервису с помощью soapUI с тем же wsdl.

Вопрос: Нужно ли поместить сертификат сервера в какое-либо хранилище доверенных сертификатов?Я уже использовал Internet Explorer, чтобы добавить его в «Trusted Root Certification Authorities».

Вопрос: Достаточно ли передать PHP «cacert», чтобы узнать, что он может доверять серверу?

Любая помощь или предложения будут высоко оценены.

1 Ответ

0 голосов
/ 22 ноября 2010

Когда я запускал код под Apache (используя XAMPP), он работал первый раз.Моя проблема должна быть где-то в конфигурации IIS или PHP.

Установка cacert была излишней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...