我在本地主机上使用 cURL 的时间最长,突然间我发现它不再有效,除非我明确设置选项 CURLOPT_SSL_VERIFYPEER
=FALSE
。
我不知道这是如何/何时发生变化的,但我使用的是 NGINX 和 PHP,我可以验证这不是特定请求主机的特定问题。我从 https://site1.com
和 https://different-site.com
收到空白回复。
有人有什么想法吗?
最佳答案
感谢 Dave Chen 的建议,我意识到我一定是放错了我的证书。该问题已通过 cURL 创建者(从 Mozilla 中提取)提供的证书解决:https://curl.haxx.se/ca/cacert.pem
因此,在将此 cacert.pem 文件下载到您的项目后,您现在可以在 PHP 中执行此操作:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt($ch, CURLOPT_CAINFO, "/path/to/cacert.pem");
或者,这可以通过将以下内容添加到您的 php.ini 中进行全局设置
curl.cainfo=/path/to/cacert.pem
关于php - cURL 需要 CURLOPT_SSL_VERIFYPEER=FALSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18971983/