我正在Windows机器上运行本地XAMPP服务器。
从这台服务器,我试图通过CURL连接到SSL加密页面。
我确实遇到了以下错误:
SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
我意识到我可以使用...
简单地禁用SSL验证curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
..但我真的不想这样做,这就是使用SSL的重点。
我在这里看到了几个答案,指向将CURL选项“CURLOPT_CAINFO”设置为可在此处获取的.pem文件:http://curl.haxx.se/ca/cacert.pem
curl_setopt($ch, CURLOPT_CAINFO, 'C:\xampp\cacert.pem' );
我确实将文件放在给定的文件夹中,并在运行curl_exec之前运行上面的命令。但我仍然得到与以前相同的错误。
我还尝试从我尝试连接的网站下载证书,但错误信息仍然相同。
PHP可以使用file_get_contents访问.pem文件,因此它似乎不是文件访问/权限问题。
这个问题的原因可能是什么?
我正在跑步:
答案 0 :(得分:1)
迟到的回应,但我有同样的问题,我修复它的方式是升级到PHP 5.3。我没有看到任何明确的说“5.2没有进行适当的证书验证”但你通过使用CURLOPT_CAINFO完成了一切。升级到5.3,它将起作用。