You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地环境cURL error 60求助:配置cacert.pem后仍报SSL证书错误

解决curl: (60) SSL certificate problem错误的方案

1. 确认php.ini配置是否生效

  • 执行命令php -i | findstr "Loaded Configuration File"(Windows)查看当前PHP加载的配置文件路径,确保你修改的是这个文件,而非备用的php.ini-development/php.ini-production。
  • 修改配置后必须重启XAMPP的Apache服务,否则新配置不会生效。

2. 验证cacert.pem文件完整性

  • 打开C:\xampp\php\extras\ssl\cacert.pem,检查文件末尾是否存在-----END CERTIFICATE-----标记,且文件内容无乱码、截断。
  • 用命令行直接测试证书有效性:curl --cacert C:\xampp\php\extras\ssl\cacert.pem https://example.com,若仍报错,重新下载最新的根证书包替换现有文件。

3. 修正路径与权限问题

  • 将php.ini中的路径改用正斜杠:curl.cainfo="C:/xampp/php/extras/ssl/cacert.pem",避免Windows反斜杠的转义冲突。
  • 右键cacert.pem文件→属性→安全,给IIS_IUSRS或Apache运行用户添加「读取」权限,防止进程无法读取证书文件。

4. 代码层面临时排查

  • 在PHP代码中手动指定证书路径,测试是否能正常请求:
$ch = curl_init("https://example.com");
curl_setopt($ch, CURLOPT_CAINFO, "C:/xampp/php/extras/ssl/cacert.pem");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo curl_error($ch);
}
curl_close($ch);

如果这段代码正常运行,说明php.ini配置未生效;若仍报错,继续排查证书文件或路径问题。

5. 导入证书到系统根存储

  • 以管理员身份打开命令提示符,执行:
certutil -addstore -f "ROOT" C:\xampp\php\extras\ssl\cacert.pem

将证书导入Windows系统根证书库,解决部分环境依赖系统信任链的问题。

内容的提问来源于stack exchange,提问作者Anton Shupeniuk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 09:27:41