Решение проблемы php 5.6 SoapClient и openssl — Could not connect to host

openssl

Заметка с исслдованием и возможным решением проблемы.
У меня возникла на 14.10 и .9 из ppa, но я видел баг репорты и с другим окружением.

И так после обновления с 5.5.24 до 5.6.9 появилась проблема с подключением к одному из удаленных Soap сервисов по https.
Начала выдаваться ошибка Could not connect to host. При чем на 5.5 все работало.
Начав гуглить проблему я наткнулся на баг с библиотекой в Ubuntu (но я встречал и про debian).
https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/965371

Похоже на мой случай и похоже это касается не только PHP, но и Python и др. сред, которые работают с .
Похоже проблема в том, что openssl начал использовать криптографический протокол TLS 1.1 или 1.2 принудительно, а многие среды оказались не готовы к этому.
Один из выходов это откатить openssl или поискать более новую версию, но это может поломать зависимости на сервере. Поэтому лучше поискать обходное решщение на PHP.

Поиски вывели меня на этот баг репорт
https://bugs.php.net/bug.php?id=68855
и на эту тему
https://www.howtoforge.com/community/threads/soap-error-after-new-php.67715/
а она в свою очередь на эти вопросы
http://stackoverflow.com/questions/25142227/unable-to-connect-to-wsdl
http://stackoverflow.com/questions/21698192/php-soap-call-through-https/30725826

В моем случае следующие параметры для помогли. Главное тут это отключаение верификации ssl в stream context.

Возможно кому-то поможет этот workaround или что-то из приложенных ссылок.

  • dbp

    нипамагло !!!!!!!!!!!!!!!!!