Intereting Posts
.htaccess субдомен url переписать ajax показывать содержимое mysql один раз PHP – синтаксический анализатор BBCode – проанализируйте тег ссылки bbcode и не помечен ссылкой Как сделать всплывающие блокираторы позволяют всплывающие окна? Как отправить электронную почту всем пользователям с помощью cakephp Временное сохранение изображения в php только при отображении на веб-странице Как узнать, вызывается ли страница через Ajax или ее собственный Как преобразовать почтовый индекс в Geolocation (широта и longitutde) с помощью Google Maps api? форсирование загрузки страницы в php Поле формы интеллектуального местоположения Outlook Rest Api отправляет почтовый запрос статус возврата 400 Соединение базы данных MySQL не закрыто: что произойдет? laravel install on bluehost – ошибка 500, несмотря на несколько методов установки Каковы разрешения по умолчанию при создании файла с fopen () в php? увеличить ширину таблицы jqgrid

Не удалось подключиться к WSDL

Я работал с более старой версией OpenSSL (OpenSSL 0.9.8o), и мне пришлось использовать новые OpenSSL 1.0.1e-fips, так как я не смог подключиться к WSDL:

Message: SoapClient::SoapClient(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Мне нужно отключить проверку сертификатов SSL, я попробовал:

  $client = new SoapClient("https://IP:443/sdk/vimService?wsdl", array( "trace" => 1, "location" => "https://IP:443/sdk/", "stream_context" => stream_context_create( array( 'ssl' => array( 'verify_peer' => false, 'allow_self_signed' => true, ) ) ) ) ); 

`

И это бросает:

Message: SoapClient::SoapClient(): Peer certificate CN= localhost.localdom 'не соответствует ожидаемому CN = SAME IP AS IN SoapClient()'

Затем я добавил 'peer_name'=> 'localhost.localdom', в stream_context а затем он говорит, что файл XML пуст:

Fatal error: Uncaught SoapFault exception: [Client] looks like we got no XML document

PHP 5.5

Okey, я смог найти проблему.

Вы можете избежать этого беспорядка, используя стабильную версию PHP 5.5

Недавно я узнал, что ошибка: «похоже, что у нас нет XML-документа» вызвана из-за версии PHP – PHP 5.6 в 5.5 работает как шарм.

Как исправить это в PHP 5.6

1) Удалите проверку сертификата SSL в PHP 5.6:

В версии 5.6 SSL-сертификация была включена по умолчанию, поэтому, если вы хотите ее отключить, вы должны передать поток контекста:

  "stream_context" => stream_context_create( array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, ) ) ) 

2) ?wsdl и добавил .wsdl вместо (с ?wsdl , это не сработало для меня)

 <?php $client = new SoapClient("https://IP:443/sdk/vimService.wsdl", array( "trace" => 1, "location" => "https://IP:443/sdk/", 'exceptions' => 1, "stream_context" => stream_context_create( array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, ) ) ) ) ); $soapmsg["_this"] = array( "_" => "ServiceInstance", "type" => "ServiceInstance"); $result = $client->RetrieveServiceContent($soapmsg); $ServiceContent = $result->returnval; $soapmsg = NULL; $soapmsg["_this"] = $ServiceContent->sessionManager; $soapmsg["userName"] = "USERNAME"; $soapmsg["password"] = "PASSWORD"; $result = $client->Login($soapmsg); $UserSession = $result->returnval; echo "User, " . $UserSession->userName . ", successfully logged in!\n"; $soapmsg = NULL; $soapmsg["_this"] = $ServiceContent->sessionManager; $result = $client->Logout($soapmsg); 

В моем случае stream_context_create не работал.
Поэтому я загружаю этот файл здесь: https://curl.haxx.se/ca/cacert.pem

и поместил его в мой localhost как: F: \ xampp \ apache \ cert.pem и дал тот же путь для openssl.cafile = F: \ xampp \ apache \ cert.pem в моем phpini

Это сделало localhost для получения сертификата, и все отлично работало … !! Проводя это, если это может помочь кому-то пройти мою ситуацию.