php вызывает функцию мыла используя сертификат клиента

У меня проблема с вызовом функции мыла. Я получаю сообщение об ошибке «Не удалось подключиться к хосту». Я использую «сервер wamp», «PHP версии 5.3.13» и «Apache версии 2.2.22».

У меня есть сертификат клиента в формате .p12, файл wsdl доступен в локальной системе, и я проверил вызов мыла с использованием soapUI-m-snapshot. Работает нормально! Но когда я пытаюсь то же самое с php «SoapClient», получая «Не удалось подключиться к хосту».
Я использую следующие варианты мыла

$soapclient_options = array();
$soapclient_options['cache_wsdl'] = 'WSDL_CACHE_NONE';
$soapclient_options['local_cert'] = $certificatePath;
$soapclient_options['passphrase'] = $api_certificate_passphrase;
$soapclient_options['trace'] = true;
$soapclient_options['connection_timeout'] = 15;
$soapclient_options['ssl_method'] = 'SOAP_SSL_METHOD_SSLv3';
$soapclient_options['location'] = 'api location';

$client = new SoapClient($wsdl_path, $soapclient_options);
$client->__setLocation($soapclient_options['location']);

Я делаю что-то неправильно?
Кто-то, пожалуйста, предложите мне и большое спасибо заранее.

1

Решение

Клиент PHP Soap принимает только сертификаты pem. Вы можете скрыть свой сертификат, используя:

openssl pkcs12 -in in.p12 -out out.pem -nodes -clcerts
1

Другие решения

Дополнительный код, необходимый для работы с версией PHP 5.6.

$soapclient_options['stream_context'] = stream_context_create(
array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
)
)
);
-1