Я использую 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
Это не моя сильная сторона в веб-разработке, поэтому я не знаю, как устранить проблему, что здесь происходит. Моя первая мысль состоит в том, что это должно быть что-то серверное, так как я не делал никаких изменений локально в течение выходных, но я не хотел начинать вызывать, если кто-то может указать мне в правильном направлении.
Благодаря!
Загрузите 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");
человек завивает состояния:
-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