在 Redhat Linux 上,我在 PHP 脚本中设置 cURL 选项如下:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, True);
curl_setopt($ch, CURLOPT_CAINFO, '/home/andrew/share/cacert.pem');
然而,当我尝试发送数据时出现此异常
(curl error: 77) error setting certificate verify locations:
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
为什么它在 中寻找 CAfile /etc/pki/tls/certs/ca-bundle.crt
?我不知道这个文件夹来自哪里,因为我没有在任何地方设置它。
它不应该在我指定的地方查找/home/andrew/share/cacert.pem
吗?我没有写权限,/etc/
所以简单地将文件复制到那里不是一个选项。我是否遗漏了其他应该使用的 curl 选项?
(这是在共享主机上 - 是否可能不允许我为 CAfile 设置不同的路径?)
答案1
尝试用 CURLOPT_CAPATH 替换 CURLOPT_CAINFO。
并且看一下 SSLCERT 选项。