Проблемы с curl и soap
На сайте есть некий функционал с soap. Через класс SoapClient отправляется некий запрос, в ответ приходят данные. Всё это работало отлично пока что-то не случилось и при попытке отправки soap запроса не начала вылетать ошибка Parsing WSDL: Couldn't load from '...' : failed to load external entity "...". Сайт развёрнут на локали в OpenServer. В нём всё работает как надо. Проблема только на глобальном сайте. Решил попробовать отправить soap через curl. Написал вот такой код:
$xml = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:tec="http://schemas.datacontract.org/2004/07/TechInspection.Domain.DataContracts">
<soapenv:Header/>
<soapenv:Body>
...
</soapenv:Body>
</soapenv:Envelope>';
$url = "url";
$ch = curl_init();
$headers = [
'Content-Type: text/xml; charset=utf-8',
'Accept: text/xml',
'Cache-Control: no-cache',
'Pragma: no-cache',
'Content-Length: ' . strlen($xml)
];
$options = [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_ENCODING => "",
CURLOPT_AUTOREFERER => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
CURLOPT_MAXREDIRS => 10,
CURLOPT_POST => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_POSTFIELDS => "$xml",
CURLOPT_HTTPHEADER => $headers
];
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
var_dump(curl_error($ch));
curl_close($ch);
var_dump($code);
var_dump($response);
die;
Снова на локали всё работает нормально. Первый var_dump возвращает пустую строку, второй - код 200, третий - тело ответа. Пробую на сайте - валятся различные ошибки, код ответа 0, тело ответа - false.
Ошибки следующие:
Network file descriptor is not connected
curl TCP connection reset by peer
OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to
Пробовал поиграться с прокси, добавлял в curl разные бесплатные прокси. Локально - всё ок. Глобально на сайте - разнообразные ошибки типа "Received HTTP code 400 from proxy after CONNECT" и тд.
Подскажите куда копать. Есть подозрение что на сервере что-то отключено, заблокированы порты, соединение блочит файрвол, ip банится на стороне soap-сервиса и другие мистические догадки в которых я не очень сильно разбираюсь. Буду благодарен за любой ответ