Perl PayPal IPN:无法获取本地颁发者证书

Perl PayPal IPN:无法获取本地颁发者证书,perl,ssl,curl,paypal,Perl,Ssl,Curl,Paypal,我正在使用curl验证PayPal IPN,但它抛出错误:SSL证书问题:无法获取本地颁发者证书。同样的代码在开发服务器上工作,当我移动到客户机服务器时,它不工作 我是否需要购买ssl认证才能通过PayPal express签出付款,或者需要在服务器上更改编码部分或任何设置。服务器上已启用Curl。任何帮助都将不胜感激 下面是我的代码,这是一个简化的测试页面: $req = HAVING PARAMETERS FROM PAYPAL; $ch = curl_init("https://www.

我正在使用curl验证PayPal IPN,但它抛出错误:
SSL证书问题:无法获取本地颁发者证书
。同样的代码在开发服务器上工作,当我移动到客户机服务器时,它不工作

我是否需要购买ssl认证才能通过PayPal express签出付款,或者需要在服务器上更改编码部分或任何设置。服务器上已启用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);
}

您告诉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列表,我建议您下载cURL维护人员提供的列表:。

您想要
CURLOPT\u CAINFO
(指向
PEM
文件)而不是
CURLOPT\u CAPATH
(指向包含
PEM
文件的目录)

可能重复的
curl_setopt($ch, CURLOPT_CAINFO, "./cacert.pem");