使用带有curl扩展名的https请求时,Window WAMP报告“SSL证书问题:无法获取本地颁发者证书”
问题描述:
It works in my centos7 linux environment. but it reports 'SSL certificate problem: unable to get local issuer certificate' in my window WAMP(PHP7.0) environment.
here is my php curl version check image
and here is my code
$func = function ($url, $post)
{
$header[] = "Content-type: text/xml";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_SSLCERTTYPE,'PEM');
curl_setopt($curl, CURLOPT_SSLCERT, './cert.pem');
curl_setopt($curl, CURLOPT_SSLKEYTYPE,'PEM');
curl_setopt($curl, CURLOPT_SSLKEY,'./key.pem');
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
$data = curl_exec($curl);
if ($data) {
curl_close($curl);
} else {
$data = curl_error($curl);
curl_close($curl);
}
return $data;
};
var_dump($func($url, $post));
它在我的centos7 linux环境中工作。 但它报告'SSL证书问题:无法获得本地颁发者证书' 在我的窗口WAMP(PHP7.0)环境中。 p>
这是我的php curl版本 检查图像 p>
这里是我的代码 p>
$ func = function($ url,$ post)
{
$ header [] =“Content-type:text / xml”;
$ curl = curl_init();
curl_setopt($ curl,CURLOPT_URL,$ url); \ n curl_setopt($ curl,CURLOPT_HEADER,1);
curl_setopt($ curl,CURLOPT_HTTPHEADER,$ header);
curl_setopt($ curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ curl,CURLOPT_POST,1);
curl_setopt($ curl,CURLOPT_SSLCERTTYPE,'PEM');
curl_setopt($ curl,CURLOPT_SSLCERT,'。/ cert.pem');
curl_setopt($ curl,CURLOPT_SSLKEYTYPE,'PEM');
curl_setopt ($ curl,CURLOPT_SSLKEY,'。/ key.pem');
curl_setopt($ curl,CURLOPT_POSTFIELDS,$ post);
$ data = curl_exec($ curl);
if($ data){
curl_close ($ curl);
} else {
$ data = curl_error($ curl);
curl_close($ curl);
}
返回$ data;
};
var_dump($ func($ url,$ post));
code> pre>
div>
答
OK. I solved it. Just configure the CA path with 'curl.cainfo' param in php.ini. Here is the link: http://www.02405.com/program/php/1603.html