php - Paypal 访问 - SSL 证书 : unable to get local issuer certificate

标签 php curl ssl paypal

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

Paypal 开发者网站从未提及使用 PayPal 访问 API 需要 SSL 证书,但是我用来请求 token 的代码如下:

$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 才能使用 Paypal 访问?

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

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

最佳答案

正确的解决方案是修复您的 PHP 设置。将 CURLOPT_SSL_VERIFYPEER 设置为 false 是一个快速的 hack,但它是错误的,因为您禁用了它的证书颁发机构的证书验证。这会使您面临中间人攻击。

很容易修复(php 5.3.7 或更高)- Download一个包含最新证书颁发机构的列表文件,并将此设置添加到您的 php.ini
curl.cainfo=<path-to>cacert.pem

重启你的网络服务器,它就会工作了!

关于php - Paypal 访问 - SSL 证书 : unable to get local issuer certificate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17478283/

相关文章:

php - 无需多次访问数据库即可存储标签

bash - Unix cURL POST 到使用文件内容的特定变量

c++ - 从 Win32 应用程序调用 REST 服务

Azure 网站 SSL - 每个证书或每个绑定(bind)的价格?

javascript - 使用 PHP 和 AJAX 提交单选按钮

php - 如何从 php 中的字符串中删除 IMDB id?

c# - 在 SSL 页面上上传文件

ssl - Evernote PHP API 和 cURL SSL 连接失败

php - 如何给 PHP GD 库中的文本添加边框

PHP Curl POST 问题导致 PHP 使用 100% CPU