我有一个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,因为我不能这样做。