2015-09-08 7 views
0

Иногда у моих пользователей PHP Curl нет установленных доверенных сертификатов.PHP Curl: обнаружение ошибки «не удалось получить локальный сертификат эмитента»

Когда приложение php пытается использовать завиток для подключения к HTTPS-серверу («curl out»), попытка не выполняется.

Если установить PHP Curl в режим многословен, я могу увидеть сообщение об ошибке

проблему сертификата SSL: не удалось получить локальный сертификат выдавшей

Но как я могу обнаружить эту проблему с в моем коде?

Curl возвращает 0 для значений CURLINFO_HTTP_CODE и CURLINFO_SSL_VERIFYRESULT.

Я хочу программно обнаружить эту ситуацию, чтобы я мог сказать администратору, что делать.

+0

мы говорим о местных пользователей, пытающихся свернуться или вы пытаетесь свернуться в? – Machavity

+0

Curl out. Я обновил Q. Спасибо. –

+0

Следующий вопрос: эти самозаверяющие сертификаты, с которыми вы имеете дело, или они только что подписаны с ЦС, который не установлен? – Machavity

ответ

0

Вы можете попробовать:

public function get($url){ 
    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $result = curl_exec($ch); 
    if(curl_errno($ch)){ 
     throw new Exception(curl_error($ch)); 
    } 
    return $result; 
} 
try{ 
    $object->get('http://example.com'); 
} catch(Exception $e){ 
    //do something with the exception you caught 
} 
Смежные вопросы