Мы интегрировали Веб-сервис UPS на нашем сайте. недавно мы получили уведомление от UPS:
Начиная с 26 января 2016 года, среда тестирования ИБП потребует
Протокол безопасности TLS 1.2, и будет доступен для вашей системы
тестирование.Начиная с 31 мая 2016 года, UPS будет требовать протокол безопасности TLS 1.2
в производстве. После этой даты любые запросы на передачу
ИБП, использующий более старые протоколы (TLS 1.1 или более ранние версии), не будет работать
Мой вопрос:
Есть ли способ общаться PHP SOAP с использованием TLS? Я уже много гуглил, но пока не нашел решения.
Пожалуйста, предложите
Я тоже встречался с этой проблемой. Я использую это для принудительной связи TLS.
$mode = array
(
'soap_version' => 'SOAP_1_1', // use soap 1.1 client
'trace' => 1,
'stream_context' => stream_context_create(array(
'ssl' => array(
'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
)
))
);
// initialize soap client
$client = new SoapClient($this->wsdl, $mode);
Но у меня всегда есть проблема (в моей среде разработки) с MAMP, которая включает в себя версию openssl без поддержки TLS 1.2.
Наконец-то я получил решение этой проблемы. Требуется OpenSSL> 1.0.1 или
NSS> 3.15, и в моем случае наш сервер поддерживает версию SSL NSS / 3.19.1
Основной ECC, поэтому нет необходимости менять код.