Symfony5使用Composer安装扩展报curl error 60 SSL自签证书错误
Composer curl error 60 自签证书报错解决方案
核心问题说明
该报错是cURL发起HTTPS请求时,检测到证书链中存在未被信任的自签名证书,你之前的配置未生效存在3个常见原因:
- 项目级
composer.json的SSL配置优先级低于全局Composer配置,容易被覆盖 - 仅配置了
curl.cainfo未同步配置openssl.cafile,且修改的不是CLI模式对应的php.ini - 配置项冲突:你在
composer.json中同时设置verify_peer: false和allow_self_signed: false逻辑矛盾
分步解决方案
- 步骤1:清理冲突配置
先删除当前项目composer.json中config.options.ssl整段配置,避免多配置冲突影响排查。 - 步骤2:临时验证问题根因
执行以下命令临时禁用TLS校验安装扩展,确认是否为证书校验导致的问题:
若命令执行成功,即可确认是证书信任问题导致的报错。composer require knplabs/knp-snappy-bundle --disable-tls - 步骤3:永久安全修复(不建议长期关闭证书校验)
- 先确认CLI模式加载的php.ini路径:执行
php --ini查看Loaded Configuration File对应的路径,仅修改该文件 - 在该php.ini中同时配置以下两个参数,值替换为你的cacert.pem绝对路径:
curl.cainfo ="C:/wamp64/bin/php/php7.3.21/extras/ssl/cacert.pem" openssl.cafile ="C:/wamp64/bin/php/php7.3.21/extras/ssl/cacert.pem"- 替换cacert.pem为最新版本,避免本地证书文件过期导致不识别新的根证书
- 若你的网络环境存在代理/网关做SSL劫持,将劫持用的自签名证书内容追加到cacert.pem文件末尾即可完成信任
- 先确认CLI模式加载的php.ini路径:执行
- 步骤4:可选全局临时关闭校验(仅临时调试用,用完建议改回)
若仅临时使用不需要长期配置,可执行以下命令全局关闭Composer的证书校验:composer config --global ssl.verify_peer false
额外建议
你当前使用的Composer 2.0.13为较旧版本,存在多个已知SSL相关bug,网络恢复正常后可升级到最新版Composer避免同类问题。
内容的提问来源于stack exchange,提问作者rabiiben
相关产品推荐
相关产品推荐

