vartem
Новичок
Приветствую,
Прошу помощи у сообщества, т.к. уже перепробовал все что мог.
Есть веб-сервис (не наш и изменить мы тут ничего не можем), который доступен по адресу https://x.x.x.x:4433/Service/Service.asmx?wsdl. Проблема в том что SSL сертификат у этого URL:
1. Самоподписанный
2. Вместо правильного host-name указана какая-то чушь.
Сам url вполне нормально открывается в интернет-браузере (если указать браузеру что мы согласны с риском и доверяем этому источнику), а так же получается через curl, если указать curl-у:
	
	
	
		
Однако 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:
	
	
	
		
та-же ситуация при запросе этого же url через file_get_contents('https://x.x.x.x:4433/Service/Service.asmx?wsdl', false, $stream_context );
	
	
	
		
версия PHP 5.5.30
Подскажите пожалуйста у кого какие идеи, т.к. все свои я уже исчерпал...
								Прошу помощи у сообщества, т.к. уже перепробовал все что мог.
Есть веб-сервис (не наш и изменить мы тут ничего не можем), который доступен по адресу 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);
	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:
		PHP:
	
	$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
                                                                          )
                                                                    )
                                                        )
            )
        );
	
		PHP:
	
	$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 );
	Подскажите пожалуйста у кого какие идеи, т.к. все свои я уже исчерпал...
								
									Последнее редактирование: 
								
							
						
						
	
					
	            

)