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

Ubuntu 22.04 LTS下Composer报curl error 60 SSL证书问题如何解决

Composer curl error 60 排查修复方案
  • 校验PHP证书相关配置正确性
    系统证书库正常不代表PHP扩展能正确读取证书,先执行以下命令查看PHP实际加载的证书配置:
    php -r "var_dump(openssl_get_cert_locations());"
    php -r "echo 'curl.cainfo: '.ini_get('curl.cainfo').PHP_EOL; echo 'openssl.cafile: '.ini_get('openssl.cafile').PHP_EOL;"
    
    如果curl.cainfo、openssl.cafile配置项为空,或指向不存在的文件,先执行php --ini | grep "Loaded Configuration"获取PHP CLI模式加载的php.ini路径(Ubuntu 22.04下PHP8.1默认路径为/etc/php/8.1/cli/php.ini),编辑该文件找到两个配置项,修改为系统默认证书路径:
    curl.cainfo = /etc/ssl/certs/ca-certificates.crt
    openssl.cafile = /etc/ssl/certs/ca-certificates.crt
    
    保存后执行php -i | grep -E "(curl.cainfo|openssl.cafile)"确认配置已生效。
  • 修正证书软链接,更新根证书库
    你之前创建软链接时源和目标顺序写反,会导致链接指向不存在的文件,执行以下命令修正软链接并强制更新证书库:
    sudo apt install --reinstall ca-certificates
    sudo mkdir -p /etc/pki/tls/certs
    sudo ln -sf /etc/ssl/certs/ca-certificates.crt /etc/pki/tls/certs/ca-bundle.crt
    sudo update-ca-certificates -f
    
    如果系统内置证书版本过旧,可手动获取最新的Mozilla CA根证书集合,覆盖写入/etc/ssl/certs/ca-certificates.crt后再执行上述更新命令。
  • 排查网络中间人劫持/代理证书问题
    如果你处于企业内网、开启了系统代理或抓包工具,网络中间设备会替换SSL证书导致校验失败,先执行以下命令测试直连Packagist的证书状态:
    curl -v https://repo.packagist.org/packages.json
    
    如果输出中显示证书签发方为企业网关、代理工具、防火墙的自定义证书,需要将对应根证书的crt文件放入/usr/local/share/ca-certificates/目录,再执行sudo update-ca-certificates导入证书即可。
  • 清除Composer自定义证书配置与缓存
    检查Composer全局配置中是否存在错误的独立证书路径配置,执行:
    composer config -g --list | grep cafile
    
    如果输出了非空的cafile路径,执行以下命令删除该配置,让Composer默认使用PHP与系统的证书配置:
    composer config -g --unset cafile
    composer clear-cache
    
  • 验证修复结果
    所有操作完成后执行composer diagnose -vvv,如果不再报SSL证书相关错误,即可正常执行install、update操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 17:21:10