登录
首页 >  文章 >  php教程

如何处理PHP环境中的CURL error 60 SSL certificate problem_下载最新cacert.pem

时间:2026-05-04 18:51:40 478浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习文章的朋友们,也希望在阅读本文《如何处理PHP环境中的CURL error 60 SSL certificate problem_下载最新cacert.pem》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新文章相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

cURL error 60 的本质是证书链验证失败,即本地缺乏有效根证书导致无法验证服务器HTTPS证书签发链,常见于Windows下PHP未配置cacert.pem或Linux系统证书过期,需下载官方最新cacert.pem并正确配置php.ini中curl.cainfo路径。

如何处理PHP环境中的CURL error 60 SSL certificate problem_下载最新cacert.pem

curl error 60 的本质是证书链验证失败

cURL error 60 不是网络不通,也不是 PHP 版本问题,而是 cURL 在发起 HTTPS 请求时,无法用本地信任的根证书去验证目标服务器证书的签发链。常见于 Windows 环境下 PHP 自带的 OpenSSL 没有预置或过期的 CA 证书包,Linux 下则可能因系统证书更新滞后或 PHP 未关联系统证书路径导致。

下载并确认 cacert.pem 文件有效性

必须使用官方最新版 cacert.pem,旧版本可能不包含新签发的根证书(比如 Let’s Encrypt 新的 ISRG Root X1/X2)。直接访问 https://curl.haxx.se/ca/cacert.pem 下载,不要从第三方网盘或博客复制链接——那些往往已过期。

  • 下载后建议用 head -n 5 cacert.pem(Linux/macOS)或记事本打开前几行,确认内容以 -----BEGIN CERTIFICATE----- 开头,且末尾有完整结束标记
  • 文件大小应在 300KB 以上;若只有几 KB,大概率是下载失败或被重定向到 HTML 页面
  • Windows 用户注意:保存时编码选 UTF-8 无 BOM,不要用 Word 或带格式编辑器另存

在 php.ini 中正确配置 curl.cainfo

这是最稳定、影响全局的修复方式,但路径写错就完全失效。

  • php --ini 命令确认正在使用的 php.ini 文件路径(CLI);Web 环境下可通过 phpinfo() 查看 “Loaded Configuration File”
  • php.ini 中添加或修改这一行:curl.cainfo = "D:\php\cacert.pem"(Windows)或 curl.cainfo = "/etc/ssl/certs/cacert.pem"(Linux),必须是绝对路径,且用英文双引号包裹
  • 同时建议补上 openssl.cafile = "D:\php\cacert.pem",避免部分扩展(如 mail() 函数)仍报类似错误
  • 改完后重启 Web 服务(Apache/Nginx)和 PHP-FPM(或整个 PHP 服务),仅刷新页面无效

临时绕过验证只适用于开发调试

在代码中设 CURLOPT_SSL_VERIFYPEER => false 或 Guzzle 的 'verify' => false 能跳过报错,但会彻底关闭证书校验,中间人攻击风险真实存在。

  • ThinkPHP 中:\think\facade\Http::get('https://api.example.com', ['verify' => false]) —— 仅限本地环境
  • 原生 cURL:curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false) —— 生产环境禁止出现该语句
  • 如果必须用临时方案,请加注释说明原因和清理时间,例如:// TODO: 移除此行,上线前配置 curl.cainfo — 2026-05-01

真正容易被忽略的是系统时间偏差:证书有效期检查依赖本地时间,若服务器时间快/慢超过 5 分钟,即使证书有效也会触发 error 60。运行 date(Linux)或检查 Windows 时间服务是否启用,比反复换证书更关键。

今天关于《如何处理PHP环境中的CURL error 60 SSL certificate problem_下载最新cacert.pem》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>