2015-01-20 2 views
0

У нас есть интеграция с сервисом через SOAP, мы используем SoapClient. Из-за POODLE ssl3 vulnerability поставщик услуг отключит SSLv3 на этих серверах.Как узнать, какая версия SSL используется SoapClient в php?

Я не нашел полезной информации о том, какая версия SSL SoapClient используется в PHP. Я также не понимаю, как использовать определенную версию SSL с SoapClient и PHP < 5.5 (начиная с версии 5.5 есть опция в SoapClient constuctor, ssl_method).

Кажется, единственный способ для PHP 5.3 и SoapClient указать версию SSL - использовать streaming context for ssl. Насколько я понимаю, я могу указать ciphers list, но это черная вода для меня. Как узнать, какие шифры использовать, чтобы убедиться, что клиент не захочет выполнять запрос через SSLv3?

В целом, должен ли я действительно волноваться? Кажется, серверу поручено сообщить клиенту, какая версия SSL использовать, не так ли? И если я не указал точную версию (3) в прошлом, то остановка SSLv3 нашего поставщика услуг не повлияет на нас?

+0

@BurhanKhalid, Зарегистрированные транспорты сокетов: tcp, udp, unix, udg, ssl, sslv3, sslv2, tls. Итак, какой из них он будет использовать? :) – Nemoden

ответ

0

Вы сбиваете с толку библиотеку SSL с SSLv3 a cipher. Используемая библиотека PHP - это доступная, когда она была создана или упакована для вашей системы. Вы можете узнать, какая конкретная версия от php_info() или аналогичных команд.

Чтобы отключить SSLv3 (шифр), просто используйте TLSv1 в качестве шифрования. Чтобы сделать это, передать в необязательном options array конструктору SoapClient:

Опция ssl_method является одним из SOAP_SSL_METHOD_TLS, SOAP_SSL_METHOD_SSLv2, SOAP_SSL_METHOD_SSLv3 или SOAP_SSL_METHOD_SSLv23.

Здесь вы должны использовать SOAP_SSL_METHOD_TLS.

+1

Я бы, да, если моя PHP-версия была 5.5+ :) У меня есть 5.3.29 на дюжине серверов, множество зависимостей и т. Д. Я имею в виду, я не могу переключиться на 5.5 сейчас – Nemoden

+0

Как я понимаю он, рукопожатие SSL будет делать трюк, мой PHP был скомпилирован с поддержкой ssl, sslv3, sslv2 и tls, поэтому клиент будет инициализировать транзакцию, он скажет, какие методы транспорта он может использовать, и сервер ответит сертификатом и список методов, которые он поддерживает, поэтому и клиент, и сервер могут вести переговоры по проблеме транспорта. Правильно ли мои мысли? – Nemoden

Смежные вопросы