cURL error 60: SSL certificate problem: unable to get local issuer certificate
错误通常与 cURL 在验证 SSL 证书时遇到的问题有关。以下是解决此问题的一些步骤:
1. 更新 cacert.pem
文件
cURL 使用 CA 证书来验证 SSL 连接。你可以下载最新的 cacert.pem
文件并配置 cURL 使用它:
-
下载
cacert.pem
:- 访问 cURL CA Extract 页面,下载最新的
cacert.pem
文件。
- 访问 cURL CA Extract 页面,下载最新的
-
配置 PHP 使用该文件:
-
将下载的
cacert.pem
文件放到你的 PHP 安装目录中,例如C:\xampp\php\extras\ssl\
。 -
编辑
php.ini
文件,添加或修改以下行:[curl] curl.cainfo = "d:\xampp\php\extras\ssl\cacert.pem"
-
2. 检查 OpenSSL 扩展
确保你已在 php.ini
中启用 OpenSSL 扩展:
extension=openssl
3. 重启 Web 服务器
在更改 php.ini
文件后,确保重启你的 Web 服务器(如 Apache 或 Nginx),使更改生效。
4. 直接忽略 SSL 验证(不推荐)
如果你在开发环境中且只是想临时绕过这个问题,可以在 cURL 请求中禁用 SSL 验证(不推荐用于生产环境):
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
5. 检查 cURL 版本
确保你使用的 cURL 版本是最新的,旧版本可能会有一些 SSL 相关的问题。
6. 确认 PHP 和 cURL 配置
运行以下命令以确认 PHP 和 cURL 配置:
phpinfo();
查找 cURL 和 OpenSSL 部分,确保它们的配置正确。
7. 系统根证书更新
在某些操作系统上,可能需要更新根证书。确保你的操作系统是最新的,有时更新系统会解决 SSL 证书问题。