Ошибка скручивания SSL-сертификат не может получить сертификат локального эмитента - недавняя разработка

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

$searchURL = "https://url.com/isTokenValid?";

$strCookie = 'asdf=' . $_COOKIE['asdf'] . '; path=/';    
$ch = curl_init();             
curl_setopt($ch, CURLOPT_URL, $searchURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);       
curl_setopt( $ch, CURLOPT_COOKIE, $strCookie ); 
curl_setopt($ch, CURLOPT_CAPATH, "\cacert.pem");
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, FALSE);

if($answer = curl_exec($ch))
{        
  if (strpos($answer,'true') !== false) 
  {
    $login = true;
  }
  else
  {
    $login = false;
  } 

Сегодня утром - он перестал работать, и я получаю сообщение об ошибке:

Ошибка скручивания: проблема сертификата SSL: невозможно получить сертификат локального эмитента

Я использую файл cacert.pem из https://curl.haxx.se/ca/cacert.pem - в случае, если эти данные необходимо обновить или обновить в некоторых Кстати, я использую файл с этой даты, который по-прежнему остается самым актуальным:

Данные сертификата из Mozilla с: Wed Oct 28 04:12:04 2015

Это не моя сильная сторона в веб-разработке, поэтому я не уверен, как решить, что происходит здесь. Моя первая мысль состоит в том, что это должно быть что-то серверное, так как я не делал никаких изменений локально в течение выходных, но я не хотел начинать совать, если кто-то может указать мне в правильном направлении.

Спасибо!

Ответы

Ответ 1

Загрузите https://curl.haxx.se/ca/cacert.pem и переименуйте в ssl.txt, затем вы можете попробовать

 $ch = curl_init();
 curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, TRUE); 
 curl_setopt ($ch, CURLOPT_CAINFO, dirname(__FILE__)."/ssl.txt");

Ответ 2

состояния завивки человека:

  -k, --insecure
          (SSL)  This  option explicitly allows curl to perform "insecure"
          SSL connections and transfers. All SSL connections are attempted
          to  be  made secure by using the CA certificate bundle installed
          by default. This makes  all  connections  considered  "insecure"
          fail unless -k, --insecure is used.

          See     this    online    resource    for    further    details:
          http://curl.haxx.se/docs/sslcerts.html