使用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 =&#34; c:\ xampp \ htdocs \ openssl \ cas \ cacert.pem&#34;到我的php.ini文件,并重新启动它仍然无法正常工作的服务,这是因为有问题的服务器是内部的,并且使用来自我的PKI服务器的链文件证书有没有人知道如何使这个工作除了改变这个之外的内部:curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,true);对此:curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,false); ?