首先下载并配置CA证书文件路径,通过composer config --global cafile指定cacert.pem位置,或设置capath指向证书目录,最后用composer diagnose验证配置生效,确保SSL连接正常。

当使用 Composer 安装或更新 PHP 包时,如果系统无法验证 SSL 证书,可能会出现类似 "SSL: CA bundle not found" 或 "Peer certificate cannot be authenticated" 的错误。这通常是因为 Composer 找不到正确的 CA(证书颁发机构)证书路径。通过配置 capath 或 cafile 可以解决这个问题。
理解 capath 和 cafile
capath 指向一个包含多个 CA 证书的目录,系统会在此目录中查找用于验证 HTTPS 连接的根证书。
cafile 则指向一个单独的文件,该文件包含所有受信任的 CA 证书(通常是合并的 PEM 文件)。
Composer 默认尝试自动检测系统的证书路径,但在某些环境(如 Windows 或自定义 PHP 环境)中可能失败。
查看当前证书配置
运行以下命令检查 Composer 当前使用的证书设置:
composer config --list | grep -i cert你可能会看到类似 certify.pem 的路径,这是 Composer 内置的证书包。如果这个路径无效或缺失,就需要手动配置。
方法一:配置 cafile(推荐)
下载最新的 CA 证书包(如 Mozilla 提供的)并指定其路径:
- 从 https://www.php.cn/link/5fe4dadcdb001d8566cd20e6d8a20251 下载
cacert.pem - 保存到本地,例如:
C:\php\extras\cacert.pem(Windows)或/etc/ssl/certs/cacert.pem(Linux/macOS) - 设置 Composer 使用该文件:
注意路径使用正斜杠或双反斜杠转义。
方法二:配置 capath(适用于证书分散存储)
如果你的操作系统已将 CA 证书散列存放在某个目录(如 /etc/ssl/certs),可以设置 capath:
确保该目录中的证书是以 OpenSSL 哈希格式命名的(如 abcd1234.0),否则不会被识别。
验证配置是否生效
执行任意网络请求命令,例如:
composer diagnose如果输出中显示 CA bundle: ... valid 并且没有 SSL 错误,说明配置成功。
基本上就这些。关键是让 Composer 能访问有效的 CA 证书,无论是通过单个文件还是证书目录。优先使用 cafile 避免路径依赖问题。










