composer提示“curl error 60”的SSL证书问题如何彻底解决

发布时间 - 2025-10-14 00:00:00    点击率:
答案是下载并配置CA证书包。首先从https://curl.se/ca/cacert.pem下载cacert.pem,保存至指定路径如C:\php\extras\ssl\;然后在php.ini中设置curl.cainfo和openssl.cafile指向该文件;最后重启服务并通过composer diagnose验证修复效果。

Composer 提示 “curl error 60: SSL certificate problem: unable to get local issuer certificate” 是因为系统无法验证远程 HTTPS 服务器的证书。这通常出现在 Windows 或某些自定义 PHP 环境中,缺少可信的 CA(证书颁发机构)根证书包。以下是彻底解决该问题的方法。

1. 下载并配置最新的 CA 证书包

Composer 和 PHP 的 cURL 扩展依赖一个受信任的证书文件(通常是 ca-bundle.crtcacert.pem)来验证 HTTPS 连接。

操作步骤:

  • 访问 https://curl.se/ca/cacert.pem 下载最新的证书文件
  • 将文件保存到本地,例如:C:\php\extras\ssl\cacert.pem(路径可根据实际环境调整)

2. 配置 php.ini 使用本地证书

修改 PHP 的配置文件 php.ini,确保 cURL 使用你下载的证书包。

找到或添加以下配置项:

curl.cainfo = "C:\php\extras\ssl\cacert.pem"
openssl.cafile = "C:\php\extras\ssl\cacert.pem"

注意:路径使用双反斜杠或正斜杠均可,但必须是实际文件路径,且文件存在。

修改后重启 Web 服务或命令行环境,使配置生效。

3. 验证配置是否生效

在命令行运行:

php -r "print_r(openssl_get_cert_locations());"

查看输出中的 default_cert_file 或确认你设置的路径被正确加载。

也可以测试 Composer 是否正常工作:

composer diagnose

如果显示 “Connection to HTTPS://... succeeded”,说明问题已解决。

4. (可选)为 Composer 单独设置证书路径

如果你不想修改全局 php.ini,可以通过 Composer 配置指定证书:

composer config --global cafile "C:\php\extras\ssl\cacert.pem"

这条命令会写入 Composer 的全局配置(通常在用户目录下的 composer/config.json),仅对 Composer 生效。

检查配置是否写入:

cat %APPDATA%\Composer\config.json

应看到类似内容:

{
    "config": {
        "cafile": "C:\\php\\extras\\ssl\\cacert.pem"
    }
}

基本上就这些。只要证书文件正确,路径无误,Composer 的 curl error 60 就不会再出现。关键是让 PHP 或 Composer 能找到可信的根证书,不建议关闭 SSL 验证(如设置 verify=false),那样会带来安全风险。


# composer  # php  # js  # json  # windows  # app  # ssl  # curl  # ai  # win  # 配置文件 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在建站之星绑定自定义域名?  如何在局域网内绑定自建网站域名?  香港服务器如何优化才能显著提升网站加载速度?  使用豆包 AI 辅助进行简单网页 HTML 结构设计  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  如何快速搭建高效WAP手机网站?  Laravel集合Collection怎么用_Laravel集合常用函数详解  高端建站如何打造兼具美学与转化的品牌官网?  如何快速上传自定义模板至建站之星?  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Laravel如何发送系统通知?(Notification渠道示例)  非常酷的网站设计制作软件,酷培ai教育官方网站?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  Laravel如何实现用户注册和登录?(Auth脚手架指南)  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  如何快速搭建虚拟主机网站?新手必看指南  如何快速完成中国万网建站详细流程?  Laravel如何实现模型的全局作用域?(Global Scope示例)  Python图片处理进阶教程_Pillow滤镜与图像增强  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  Laravel观察者模式如何使用_Laravel Model Observer配置  个人摄影网站制作流程,摄影爱好者都去什么网站?  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  如何批量查询域名的建站时间记录?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  如何在腾讯云服务器上快速搭建个人网站?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  JS经典正则表达式笔试题汇总  如何快速上传建站程序避免常见错误?  如何为不同团队 ID 动态生成多个非值班状态按钮  香港网站服务器数量如何影响SEO优化效果?  太平洋网站制作公司,网络用语太平洋是什么意思?  如何获取上海专业网站定制建站电话?