为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
aluckdog 2019-10-09 14:43:41
我正在使用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
查看完整描述

3 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

您可以通过添加以下内容来禁用SSL验证(从cURL 7.10开始默认启用):


CURLOPT_SSL_VERIFYPEER, false

你的$options,但是正确的方法是保持启用验证。


安全通知


如果远程站点使用已知CA颁发的证书,但验证仍然失败,则很可能是在远程服务器上错误地设置了证书(缺少中间证书等)。或者,您的系统不知道有关用于签署目标证书的二手证书颁发机构的信息。在这种情况下,您应该使用php.ini的curl.cainfo(文档)指向具有所有受支持的CA的有效PEM文件-这将使您的设置正确验证发行者链。


请注意,通过设置CURLOPT_SSL_VERIFYPEER到false你不解决这个问题!您正在解决它。这全都与安全性有关,因此可以暂时执行此操作,但是礼貌地说,将其部署在生产环境中并不明智,因为您将对“中间人攻击”开放。你被警告了。


查看完整回答
反对 回复 2019-10-09
  • 3 回答
  • 0 关注
  • 577 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信