Клиент PHP Soap не может загрузить ссылку https wsdl

Я пытался загрузить конкретный https wsdl через php soapclient. Ошибка, которую я получаю:

SOAP-ERROR: разбор WSDL: не удалось загрузить с 'https://xxxx.com?wsdl': не удалось загрузить внешний объект "https://xxxx.com?wsdl". Более того, я также пытаюсь "Curl < href="https://xxxx.com?wsdl" rel="nofollow noreferrer">https://xxxx.com?wsdl". Ошибка, которую я получаю:

curl: (35) ошибка: 141A318A: подпрограммы SSL: tls_process_ske_dhe: слишком маленький ключ dh

Я могу просматривать конкретный wsdl через браузер. Curl с http вместо https возвращает правильный ответ.

Странно то, что у моего коллеги установлена ​​Ubuntu 18.04 на его машине, и у него нет никаких проблем. К вашему сведению, у меня установлен Debian 10, и у нас обоих один и тот же IP-адрес.

Я действительно не понимаю, где может быть проблема.


person Ali Kenan Yagmur    schedule 11.10.2019    source источник


Ответы (1)


Вы должны попробовать отключить проверку сертификата при создании экземпляра SoapClient.

$context = stream_context_create([
    'ssl' => [
        // set some SSL/TLS specific options
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    ]
]);

$client  = new SoapClient($url, [
    ... ( other params )
    'stream_context' => $context
]);

Если вы используете curl из командной строки, вы можете использовать флаг --insecure/-k.

person Sergio Rinaudo    schedule 14.10.2019