Я пытаюсь сделать запрос на веб-сайты Cloudflare.
До вчерашнего дня у меня был рабочий скрипт, но теперь кажется, что запросы отправляются обратно пустыми.
Теперь проблема кажется очень странной по следующим причинам:
* До вчерашнего дня все работало нормально.
* Это происходит только на сайтах, требующих SSL-соединения.
* Тот же код работает на моем локальном хосте, но не на моем сервере.
Вот код, который я использую:
$ch = curl_init();
$curlConfig = array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6',
CURLOPT_FOLLOWLOCATION => 1
);
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
curl_close($ch);
Как видите, код очень прост, но я просто не могу понять, почему он не будет работать на моем сервере, а на локальном хосте (XAMPP) он отлично работает.
Спасибо вперед и хорошего дня!
Поддерживает ли ваша локальная настройка curl использование сертификатов ECC SSL?
Если это происходит только на сайтах с бесплатной учетной записью CloudFlare (в отличие от учетной записи pro), это означает, что ваша установка curl не может подключиться к сайтам, которые используют шифры с эллиптической кривой для шифрования SSL.
Вам необходимо установить эти шифры на вашем сервере. Вы упомянули, что он не работает на серверах, хотя он отлично работает на XAMPP. Это вероятно, поскольку на вашем локальном компьютере эти шифры установлены, а на вашем компьютере нет. Вы можете сделать это в среде Linux, обновив свою версию OpenSSL.
Это должно решить вашу проблему. Веселитесь, будьте уверены, чтобы не заблокировать CloudFlare их брандмауэром!
Других решений пока нет …