У меня возникли чрезвычайные трудности с PHP curl. Я пытаюсь открыть сайт: https://www.novaprostaffing.com/np/index.jsp через PHP curl, но он продолжает выдавать следующую ошибку: «Неизвестная ошибка протокола SSL при подключении к www.novaprostaffing.com»
Моя функция заключается в следующем:
function getUrl($url) {
$ch = curl_init();curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$buffer = curl_exec($ch);
if (!$buffer)
{
echo "cURL error number:" .curl_errno($ch);
echo " and url is $url and cURL error:" . curl_error($ch);
}
curl_close($ch);
return $buffer;
}
Я попытался несколько исправлений, в том числе:
Ничто из вышеперечисленного не сработало. Если у вас есть идеи, как это исправить, это будет высоко ценится!
Сервер говорит только по TLS 1.0, и попытка подключения с помощью SSL 2.0 или SSL 3.0 вызовет ошибку, которую вы видите. Это означает, что установка версии на 3 — совершенно неправильная вещь на этом сервере. Кроме того, цепочка сертификатов является неполной. Сервер предоставляет только листовой сертификат, а не промежуточные сертификаты до доверенного корня. Это приведет к сбою проверки.
Попробуйте установить опцию cURL CURLOPT_SSLVERSION. У меня была такая же проблема некоторое время назад, это помогло мне 🙂
curl_setopt($ch, CURLOPT_SSLVERSION, 3); // 1, 2 or 3
Вы пробовали какой-нибудь другой URL-адрес https и посмотрите, сработало ли это?
Вот 3 общих причины