perl – PayPal IPN:无法获得本地颁发者证书

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

我是否需要购买ssl认证才能通过PayPal快速结账或我的编码部分的任何更改或任何需要在服务器上进行的设置进行付款.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,CURLOPT_POSTFIELDS,$req);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,CURLOPT_SSL_VERIFYHOST,2);
curl_setopt($ch,CURLOPT_FORBID_REUSE,CURLOPT_HTTPHEADER,array('Connection: Close'));

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

解决方法

您告诉cURL验证SSL连接,但您没有告诉它要验证什么;
curl_setopt($ch,2);

确保通过添加以下内容指向要信任的CA的最新列表:

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

如果您自己没有最新的cacert列表,我建议您下载cURL维护者提供的那个:cacert.pem.

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...