答案是配置正确的CA证书路径可解决Composer的SSL证书问题。首先在php.ini中设置curl.cainfo和openssl.cafile指向下载的cacert.pem文件;其次避免在生产环境使用composer config --global disable-tls true等不安全方式;然后通过系统包管理器更新CA证书包;最后Windows用户需手动下载并配置证书路径,完成后运行composer diagnose验证修复效果。

当使用 Composer 安装或更新 PHP 包时,如果遇到 “SSL certificate problem: unable to get local issuer certificate” 错误,说明 Composer 在通过 HTTPS 请求远程服务器(如 packagist.org)时无法验证 SSL/TLS 证书。这通常与本地环境的 CA 证书配置有关。以下是解决该问题的几种有效方式。
PHP 的 cURL 扩展需要一个受信任的证书颁发机构(CA)证书包来验证 HTTPS 连接。Composer 基于 cURL 或 PHP 的 stream wrappers 发起请求,因此必须正确配置 curl.cainfo 或 openssl.cafile。
打开你的 php.ini 文件(可通过 php --ini 查看位置),确保包含以下设置:
你需要下载最新的 CA 证书包(例如从 https://www.php.cn/link/5fe4dadcdb001d8566cd20e6d8a20251),保存到本地(如 C:\php\extras\cacert.pem 或 /etc/ssl/certs/cacert.pem),然后在 php.ini 中指定路径。
修改后重启 Web 服务或命令行环境,并运行 php -r "print_r(openssl_get_cert_locations());" 检查是否生效。
临时绕过 SSL 验证可用于测试环境,但会带来安全风险,不应在生产中使用。
你可以通过以下命令关闭 SSL 验证:
composer config --global disable-tls true注意: 这会使所有 HTTPS 请求降级为不安全连接,容易受到中间人攻击。建议仅在调试时临时使用,完成后应恢复设置:
composer config --global disable-tls false在 Linux 或 macOS 上,系统级的 CA 证书可能已过时。使用包管理器更新证书包:
之后确认 php.ini 中的 openssl.cafile 指向系统证书路径,如 /etc/ssl/certs/ca-certificates.crt(Linux)或 /usr/local/etc/openssl/cert.pem(macOS)。
Windows 用户常因未配置证书路径而报错。建议步骤如下:
基本上就这些。只要正确配置 CA 证书路径,绝大多数 SSL 验证失败问题都能解决。保持系统和 PHP 环境更新,也能避免类似问题反复出现。
以上就是composer如何处理SSL/TLS证书验证失败 “SSL certificate problem” 错误的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号