Грешка в SSL сертификат в cURL - php, ssl, curl, https

Факти

Имам Apache / 2.4.27 (Win64) PHP / 7.2.0beta3 на Win 10 лаптоп. Искам да приложим cURL. Това е моят код

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://www.youtube.com");
curl_exec($curl);

if (curl_errno ( $curl )) {
echo curl_error ( $curl );
curl_close ( $curl );
}

който генерира грешката SSL certificate problem: unable to get local issuer certificate, Така че изтеглих сертификати от https://curl.haxx.se/ca/cacert.pem, Взех cacert.pem файла, го поставих в PHP папката и редактирахме php.ini файл като този curl.cainfo = C:php/ext/cacert.pem.

проблем

Сега получавам тази грешка error setting certificate verify locations: CAfile: C:php/ext/cacert.pem CApath: none, Аз googled и единственото решение, което намерих е, че трябва да изтеглите .crt файл от сайта Искам да CURL и да го включите в моя CURL като curl_setopt($curl, CURLOPT_CAINFO, "C:/wamp64/www/GIAG2.crt");.

Проблем 1.1 : Аз не знам как да изтеглите .crt файл, така че мога да го включа в моя код, като горния пример.

Проблем 1.2 : Това не е "универсално" решение, искам да поставям сертификатите си така, че да не се налага да свалям различни сертификати за различни сайтове.

Благодаря ти

Отговори:

1 за отговор № 1

Текущите извлечения от CA Cert, предоставени от къдрица съдържат сертификатния орган на GeoTrust Global CA, който е подписал сертификата на Google за сертификат, който на свой ред подписва сертификата на YouTube, така че не би трябвало да имате проблем да използвате файла, който имате.

Въз основа на последната грешка, изглежда, че проблемът е, че сте пропуснали / след C:, Съобщението error setting certificate verify locations означава, че не може да отвори или прочете файла, посочен от curl.cainfo така че да не намери никакви сертификати изобщо.

Ако промените C:php/ext/cacert.pem да се C:/php/ext/cacert.pem то трябва да може да чете правилно CA файла и след това да провери сайта правилно.


-1 за отговор № 2

Най-лесният начин е да пропуснете тази проверка.

...
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_exec($curl);