У нас есть интеграция с сервисом через SOAP, мы используем SoapClient.
Из-за POODLE ssl3 уязвимость поставщик услуг отключит SSLv3 на этих серверах.
Я не смог найти никакой полезной информации о том, какую версию SSL SoapClient использует в PHP.
Я также не понимаю, как использовать конкретную версию SSL с SoapClient и PHP<5.5 (начиная с версии 5.5 есть опция в конструкторе SoapClient, ssl_method
).
Похоже, что единственный способ для PHP 5.3 и SoapClient указать версию SSL — это использовать потоковый контекст для ssl. Насколько я понимаю могу указать ciphers list
, но это чёрная вода для меня. Как узнать, какие шифры использовать, чтобы клиент не захотел выполнить запрос через SSLv3?
В целом, я должен действительно волноваться? Кажется, что ответственность за то, чтобы сообщить клиенту, какую версию SSL использовать, лежит на серверах, не так ли? И если я не указал точную (3) версию в прошлом, отключение SSLv3 нашего поставщика услуг не повлияет на нас?
Вы путаете SSL библиотека с SSLv3 шифр. Библиотека, которую использует PHP, является доступной, когда она была собрана или упакована для вашей системы. Вы можете узнать, какая конкретная версия от php_info()
или аналогичные команды.
Чтобы отключить SSLv3 (шифр), просто используйте TLSv1
как шифр. Для этого передайте в необязательный опции массив конструктору SoapClient:
ssl_method
параметр является одним из SOAP_SSL_METHOD_TLS,
SOAP_SSL_METHOD_SSLv2, SOAP_SSL_METHOD_SSLv3 или
SOAP_SSL_METHOD_SSLv23.
Здесь вы бы использовали SOAP_SSL_METHOD_TLS
,
Других решений пока нет …