贝宝访问-SSL证书:无法获取本地发行者证书

我正在使用cUrl和PHP向服务器发出请求(用于PayPal访问)


贝宝开发者网站从未提及使用贝宝访问API需要SSL证书,但是我用于请求令牌的代码如下:


$options = array(

                CURLOPT_URL => $url,

                CURLOPT_POST => 1,

                CURLOPT_VERBOSE => 1,

                CURLOPT_POSTFIELDS => $postvals,

                CURLOPT_RETURNTRANSFER => 1,

                CURLOPT_SSLVERSION => 3

);


curl_setopt_array($ch, $options);


$response = curl_exec($ch); 

echo curl_error($ch);

此回显输出以下错误:


SSL certificate problem: unable to get local issuer certificate

我的问题是:


1)如果我只需要获取用户电子邮件,是否需要SSL才能使用贝宝访问?


2)如果我不需要SSL,为什么会发生此错误?


PS:端点如下:https : //www.sandbox.paypal.com/webapps/auth/protocol/openidconnect/v1/tokenservice


aluckdog
浏览 578回答 3
3回答

素胚勾勒不出你

您可以通过添加以下内容来禁用SSL验证(从cURL 7.10开始默认启用):CURLOPT_SSL_VERIFYPEER, false你的$options,但是正确的方法是保持启用验证。安全通知如果远程站点使用已知CA颁发的证书,但验证仍然失败,则很可能是在远程服务器上错误地设置了证书(缺少中间证书等)。或者,您的系统不知道有关用于签署目标证书的二手证书颁发机构的信息。在这种情况下,您应该使用php.ini的curl.cainfo(文档)指向具有所有受支持的CA的有效PEM文件-这将使您的设置正确验证发行者链。请注意,通过设置CURLOPT_SSL_VERIFYPEER到false你不解决这个问题!您正在解决它。这全都与安全性有关,因此可以暂时执行此操作,但是礼貌地说,将其部署在生产环境中并不明智,因为您将对“中间人攻击”开放。你被警告了。
打开App,查看更多内容
随时随地看视频慕课网APP