Прошу помощи у сообщества, т.к. уже перепробовал все что мог.
Есть веб-сервис (не наш и изменить мы тут ничего не можем), который доступен по адресу https://x.x.x.x:4433/Service/Service.asmx?wsdl. Проблема в том что SSL сертификат у этого URL:
1. Самоподписанный
2. Вместо правильного host-name указана какая-то чушь.
Сам url вполне нормально открывается в интернет-браузере (если указать браузеру что мы согласны с риском и доверяем этому источнику), а так же получается через curl, если указать curl-у:
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
Однако SoapClient настойчиво продолжает мне показывать ошибку:
Warning: SoapClient::SoapClient(https://x.x.x.x:4433/Service/Service.asmx?wsdl): failed to open stream: HTTP Warning: SoapClient::SoapClient() request failed!
Warning: I/O warning : failed to load external entity
[WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://x.x.x.x:4433/Service/Service.asmx?wsdl' : failed to load external entity https://x.x.x.x:4433/Service/Service.asmx?wsdl"
Теперь сам вызов SoapClient:
$client = new SoapClient('https://x.x.x.x:4433/Service/Service.asmx?wsdl',
array(
// "soap_version"=> SOAP_1_2,
// 'features' => SOAP_SINGLE_ELEMENT_ARRAYS,
'trace' => 1,
'exceptions' => true,
'cache_wsdl' => WSDL_CACHE_NONE,
'verifypeer' => false,
'verifyhost' => false,
'stream_context' => stream_context_create(
array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
),
'https' => array(
'curl_verify_ssl_peer' => false,
'curl_verify_ssl_host' => false
)
)
)
)
);
та-же ситуация при запросе этого же url через file_get_contents('https://x.x.x.x:4433/Service/Service.asmx?wsdl', false, $stream_context );
$stream_context = stream_context_create([
'ssl' => array(
//'capture_session_meta' => true,
'verify_peer' => 0,
'verify_peer_name' => 0,
// 'allow_self_signed' => true,
)
]
);
file_get_contents('https://x.x.x.x:4433/Service/Service.asmx?wsdl', false, $stream_context );
версия PHP 5.5.30
Подскажите пожалуйста у кого какие идеи, т.к. все свои я уже исчерпал...