cURL error 60 根本原因是 PHP 未配置 curl.cainfo,导致无法验证 HTTPS 证书;需下载官方 cacert.pem,配置绝对路径到 php.ini 并重启服务。

phpEnv 里 curl 报 cURL error 60 怎么办
根本原因不是 curl 不支持 HTTPS,而是它找不到可信的 CA 根证书来验证服务端证书。phpEnv 是集成环境,自带的 PHP 通常没配 curl.cainfo,也不自带系统级证书包,所以默认会失败。
下载并配置 cacert.pem 到 phpEnv
必须用权威来源的证书包,推荐直接下载官方维护的 bundle:
- 访问 https://www.php.cn/link/cd6a3674478af373087f891eeb390100,保存为
cacert.pem - 把它放到一个固定路径,比如
D:phpenvphpcacert.pem(Windows)或/phpenv/php/cacert.pem(Linux/macOS) - 打开 phpEnv 管理面板 → 找到当前启用的 PHP 版本 → 点击「php.ini」编辑按钮
- 搜索
curl.cainfo,取消注释(删掉前面的分号),填入绝对路径:curl.cainfo = "D:\phpenv\php\cacert.pem"(注意 Windows 下双反斜杠或正斜杠都可) - 保存后,务必点击 phpEnv 面板里的「重启 PHP」或「重启所有服务」
代码里临时绕过验证只适用于本地调试
如果只是快速测试,可以在单次请求中关闭校验,但绝不能留在生产代码里:
向CurlShip提交产品,这是一个对机器人友好的SaaS目录。只需一条curl命令即可发布产品,支持OG标签抓取、带徽章的dofollow链接及层级升级。
-
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false):跳过证书签名验证 -
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0):不检查证书域名匹配(2是严格模式,0才真正禁用) - ThinkPHP 或 Guzzle 用户可用
'verify' => false,效果等同 - 这类写法会让请求暴露在中间人攻击下,上线前必须删掉
容易被忽略的三个细节
配完 curl.cainfo 还报错?先检查这些:
立即学习“PHP免费学习笔记(深入)”;
- 路径是不是绝对路径——相对路径(如
./cacert.pem)在 phpEnv 下大概率失效 - php.ini 是否改对了文件——phpEnv 可能有多个 PHP 版本,确认你编辑的是当前 Web 请求实际加载的那个
php.ini(可通过phpinfo()页面查Loaded Configuration File) - 系统时间是否准确——证书有效期校验依赖本地时间,差几小时就可能触发
unable to get local issuer certificate


















