php curl:(60)SSL证书:无法获得本地颁发者证书

时间:2017-02-06 01:48:07

标签: php ssl curl

我有一个VPS,我正在尝试在我的网站中集成支付网关。我在我的站点(COMODO)中安装了SSL sertificate,并且根据网关提供商的指示,我必须通过cURL建立安全连接。 代码如下:

$c = curl_init();
curl_setopt($c, CURLOPT_HEADER, 0);
curl_setopt($c, CURLOPT_URL, $stringbuffer);
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $s);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($c, CURLOPT_CAINFO, "/home/site/ssl/certs/Cert.pem");
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);

这个Cert.pem,我从他们的网站(用chrome)中提取它,然后通过openssl将其转换为pem。现在,每当我尝试建立此连接时,都会收到错误:

CURL ERROR: 60::SSL certificate problem: unable to get local issuer certificate

我可以访问php.ini,所以在大搜索后我尝试将以下内容添加到ini文件中:

[curl]
curl.cainfo="/home/site/ssl/certs/myCert.pem"

[openssl]
openssl.cafile="/home/site/ssl/certs/myCert.pem"

其中myCert.pem是我的网站证书,我再次提取为cer,然后使用openssl将其转换为pem。

我还尝试在ini文件中添加https://curl.haxx.se/ca/cacert.pem代替myCert但没有成功。

任何想法,请不要让我关闭verifypeer,因为我不能这样做。

0 个答案:

没有答案