Я три дня просматриваю сеть и до сих пор не могу решить свою проблему … Поэтому и прошу вашей помощи 🙂
Я пытаюсь вызвать веб-сервис через https с подписанным сертификатом, и я получаю следующую ошибку: SOAP-ERROR: Синтаксический анализ WSDL: Не удалось загрузить из https: // …
Мой код:
$streamContext = stream_context_create(array(
'ssl' => array(
'verify_peer' => false,
'allow_self_signed' => true
)
));
$client = new SoapClient("https://DOMAIN/ws.php?wsdl", array(
'trace' => true,
'stream_context' => $streamContext
));
$client->method($params);
Я пытался :
Кроме того, я проверил соединение между клиентом и сервером с помощью следующих команд «ping DOMAIN» и «telnet DOMAIN 443», и все в порядке.
Кажется, опция stream_context игнорируется или проблема в другом месте ?!
Это ошибка PHP?
Все предложения будут оценены.
Спасибо
У меня была очень похожая проблема, и я добавил 'verify_peer_name' => false
в контексте потока. Так…
$streamContext = stream_context_create(array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
));
Примечание редактора: отключение проверки SSL имеет последствия для безопасности. Без проверки подлинности соединений SSL / HTTPS злоумышленник может выдать себя за доверенную конечную точку (например, GitHub или другой удаленный хост Git), и вы будете уязвимы для Атака «Человек посередине». Убедитесь, что вы полностью понимаете проблемы безопасности, прежде чем использовать это в качестве решения.
Других решений пока нет …