PHP Soap Client не может загрузить https wsdl ссылку - PullRequest
0 голосов
/ 11 октября 2019

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

SOAP-ERROR: синтаксический анализ WSDL: невозможно загрузить из 'https://xxxx.com? Wsdl ': не удалось загрузить внешний объект "https://xxxx.com? Wsdl"Кроме того, я также пытаюсь" Curl https://xxxx.com? Wsdl". Я получаю сообщение об ошибке:

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

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

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

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

1 Ответ

0 голосов
/ 14 октября 2019

Вы должны попытаться отключить проверку сертификата при создании экземпляра 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.

...