这是我的代码:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postValues);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
现在$ result是" false"并且curl_error()向我显示SSL-Error" Peer的证书发行者无法识别。"。 但是虽然存在这个错误,但是帖子数据已经发送到$ apiUrl。
这是对的吗?错误或功能? ;)
如何改进此功能以防止将数据发送到不安全的服务?
提前致谢! :)
答案 0 :(得分:0)
这有两个解决方案......
如果您想跳过检查SSL证书使用....
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
如果您有证书,请使用....
curl_setopt ($ch, CURLOPT_CAINFO, "PATH_TO/cacert.pem");
感谢。
答案 1 :(得分:0)
这是不正确的;当SSL证书出现问题时,cURL不会发送任何数据。
(我刚刚测试了与本地脚本的连接 - 当第一个脚本在连接到它时遇到SSL错误时,第二个脚本没有运行。)
答案 2 :(得分:0)
最后我找到了数据传输的原因,尽管存在卷曲错误! 有一个重定向到另一个位置并且“followlocation”处于活动状态,错误发生在重定向的网站上! 因此数据已发送到$ apiUrl并已处理完毕。在此之后,卷曲调用已被重定向并出现错误。
我对逻辑的信任已经恢复:D