cURL 在错误的地方寻找 CA

cURL 在错误的地方寻找 CA

在 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 选项。

相关内容