Я получаю следующую ошибку при использовании curl: Ошибка: 60 Проблема с сертификатом SSL: невозможно получить сертификат локального эмитента.
<?php
if($fp = tmpfile())
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://server.org");
curl_setopt($ch, CURLOPT_STDERR, $fp);
curl_setopt($ch, CURLOPT_CERTINFO, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
$result = curl_exec($ch);
curl_errno($ch)==0 or die("Error:".curl_errno($ch)." ".curl_error($ch));
fseek($fp, 0);//rewind
$str='';
while(strlen($str.=fread($fp,8192))==8192);
echo $str;
fclose($fp);
}
?>
Я знаю, что это связано с тем, что curl нужен файл ca.pem, однако, когда я добавил curl.cainfo = «c: \ xampp \ htdocs \ openssl \ cas \ cacert.pem» в мой файл php.ini и перезапустил службы, которые он до сих пор не поддерживает не работает, и это может быть потому, что рассматриваемый сервер является внутренним, и использование сертификатов цепочки файлов с моих серверов PKI знает кто-нибудь о способе заставить это работать для внутреннего, кроме изменения этого: curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, true) ; на это: curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, false); ?
Задача ещё не решена.
Других решений пока нет …