【发布时间】:2016-07-08 00:14:39
【问题描述】:
我正在使用 curl 通过 https 将 xml 文件发送到 rightmove API - 他们为我提供了所有证书。
我收到了错误:
60SSL证书问题:无法获取本地颁发者 证书结果 =
我已经尝试了我在所有其他类似的 stackoverflow 帖子上找到的所有内容,但没有任何效果,我尝试下载旧的 cacert.pem 并更改了 php.ini 中的文件 - 我安装了我的个人信息文件并在浏览器和本地机器,没有任何东西可以消除错误 60。
这是我的 PHP :
<?php
$xml = file_get_contents("myxml.xml");
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt ($ch, CURLOPT_CAINFO, dirname(__FILE__).'\mypem.pem');
curl_setopt($ch, CURLOPT_URL, "https://adfapi.adftest.rightmove.com/v1/property/sendpropertydetails");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_REFERER, 'https://adfapi.adftest.rightmove.com/v1/property/sendpropertydetails');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_VERBOSE , 1);
$ch_result = curl_exec($ch);
print curl_errno($ch);
print curl_error($ch);
echo "Result = ".$ch_result;
curl_close($ch);
?>
这让我头疼了好几天,如果能提供任何帮助,我将不胜感激。
【问题讨论】:
-
尝试设置 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);并删除 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
-
@Indrajit 谢谢indrajit,但是api需要认证
-
大概您在浏览器中没有收到相同的错误。要么你没有更新你的补丁,要么你安装了一个没有为你的平台正确配置的 PHP 版本。
-
我在本地、我的网络服务器和我的工作服务器上收到此错误。@symcbean,但是你是对的,我可以在浏览器中导航没有问题。
-
尝试了一整天后仍然无法解决这个问题