贝宝IPN:无法获取本地颁发者证书(PayPal IPN: unable to get local

2019-07-20 02:59发布

我使用卷曲来验证PayPal的IPN,但它抛出错误: SSL certificate problem: unable to get local issuer certificate 。 相同的代码正在开发服务器上,当我移动到客户端服务器它不工作。

我是否需要购买SSL证书,以便使通过支付宝付款快速结账或在我的编码部分或任何设置的任何变化需要作出server.Curl服务器上已经启用。 任何帮助将不胜感激。

我下面的代码,并为此其减少的测试页:

$req = HAVING PARAMETERS FROM PAYPAL;

$ch = curl_init("https://www.sandbox.paypal.com/cgi-bin/webscr");
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close'));

curl_exec($ch);
if(curl_errno($ch))
{
    echo 'Curl error: ' . curl_error($ch);
}

Answer 1:

你告诉cURL来验证SSL连接,但你不告诉它来验证反对什么;

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);

请确保您指向CA的加入相信的了最新名单:

curl_setopt($ch, CURLOPT_CAPATH, "./cacert.pem");

如果你没有一个达到最新CACERT列出自己,我建议你下载由卷曲维护者提供的一个: cacert.pem 。



Answer 2:

你想CURLOPT_CAINFO (指向一个PEM文件)不CURLOPT_CAPATH (指向包含目录PEM文件)。

curl_setopt($ch, CURLOPT_CAINFO, "./cacert.pem");


文章来源: PayPal IPN: unable to get local issuer certificate