2014-10-03 4 views
5

У меня очень сложная задача с PHP-завитой. Я пытаюсь открыть сайт: https://www.novaprostaffing.com/np/index.jsp через PHP локон, но он держит давая следующую ошибку: «Неизвестная ошибка протокола SSL в связи с www.novaprostaffing.com»Ошибка скручивания PHP: «Неизвестная ошибка протокола SSL в связи с ...»

Моя функция выглядит следующим образом:

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; 

}

Я пытался несколько исправлений в том числе:

  1. Принуждение локон версии 3
  2. Настройка CURLOPT_SSL_VERIFYPEER & CURLOPT_SSL_VERIFYHOST до 0
  3. Проверка наличия зависания 7.34. Мне сказали, что есть ошибка в этой версии, но я нахожусь на завитке. 7.19.1

Ничего из этого не было сделано. Если у вас есть идея, как это исправить, это было бы очень признательно!

+2

Попробуйте его с помощью 'curl_setopt ($ ch, CURLOPT_SSLVERSION, 1);' Это устанавливает версию для TLSv1 (не SSLv1) – Emilie

+0

Спасибо, это сработало, очень ценится! –

ответ

0

Сервер говорит только TLS 1.0 и попытка подключения с SSL 2.0 или SSL 3.0 приведет к ошибке, которую вы видите. Это означает, что установка версии на 3 - это не то же самое с этим сервером. Кроме того, цепочка сертификатов является неполной. Сервер предоставляет только листовой сертификат, а не промежуточные сертификаты до доверенного корня. Это приведет к сбою проверки.

2

Попробуйте установить опцию cURL CURLOPT_SSLVERSION. У меня была та же проблема, некоторое время назад, это сделал трюк для меня :)

curl_setopt($ch, CURLOPT_SSLVERSION, 3); // 1, 2 or 3 
0

ли вы попробовать какой-нибудь другой протокол HTTPS URL и посмотреть, если это работает? Вот 3 общие причины

  1. Назначение сайта не нравится протокол
  2. Адресат сайта не нравится Cipher
  3. Закрытый ключ SSL Истек
Смежные вопросы