遇到 Composer HTTPS 验证失败时,可通过设置 COMPOSER_CAFILE 环境变量指定 PEM 格式的自定义 CA 证书路径,Linux/macOS 使用 export,Windows 使用 set 或 PowerShell 命令;2. 也可在 php.ini 中配置 openssl.cafile 或 curl.cainfo 实现全局信任;3. 可选将证书追加到系统 CA bundle 文件;4. 通过 composer diagnose 或 require 命令验证 SSL 配置是否生效,推荐优先使用 COMPOSER_CAFILE 方式。

在使用 Composer 时,如果遇到 HTTPS 验证失败的问题(例如自建仓库、私有镜像或企业防火墙),可能需要指定自定义的 CA 证书包。Composer 基于 PHP 的 Stream Context 和 OpenSSL 进行 HTTPS 请求,因此可以通过配置 PHP 或 Composer 自身的方式来加载可信的 CA 证书。
1. 使用环境变量指定 CA 证书路径
Composer 支持通过环境变量 COMPOSER_CAFILE 来指定自定义的 CA 证书文件(PEM 格式)。这是最直接且推荐的方式。
操作步骤如下:
- 将你的 CA 证书(如 my-ca-bundle.crt)保存为 PEM 格式文件
- 设置环境变量指向该文件
在终端中执行:
export COMPOSER_CAFILE="/path/to/my-ca-bundle.crt"
之后运行 Composer 命令时会自动使用该证书文件。
Windows 示例:命令提示符:
set COMPOSER_CAFILE=C:\certs\my-ca-bundle.crt
PowerShell:
$env:COMPOSER_CAFILE = "C:\certs\my-ca-bundle.crt"
为了持久化,可将环境变量写入系统环境或 shell 配置文件(如 ~/.bashrc、~/.zshrc)。
2. 修改 php.ini 中的 openssl.cafile
如果希望所有 PHP 程序(包括 Composer)都信任特定 CA 包,可以在 php.ini 中配置全局 CA 文件。
找到并修改 php.ini(可通过 php --ini 查看位置):
v4.5更新说明:修改店铺自定义分类为一级重新整合bbsxp论坛,修正了一致的所有错误。如分页,搜索,通行密码,选项等错误修改添加会员认证功能。认证后可以再次升级认证.增加虚拟币使用功能。可使用虚拟币购买收费店铺时间,站长可以在后台控制价格。订单管理中添加付款连接,使买家下订单后可以选择是否马上付款。增加首页两侧广告条增加在后台可以更改9大主题的名称增加修改后台的求购管理增加会员申请收费店铺及收费
openssl.cafile=/path/to/my-ca-bundle.crt
或(部分系统使用):
curl.cainfo=/path/to/my-ca-bundle.crt
保存后重启相关服务(如 CLI 不需重启,但 Web 服务可能需要重载 PHP)。
3. 将 CA 证书合并到系统默认 bundle(可选)
某些系统(如 Linux)使用集中管理的 CA 证书包(如 /etc/ssl/certs/ca-certificates.crt)。你可以将自定义 CA 添加进去:
cat my-ca.crt >> /etc/ssl/certs/ca-certificates.crt
注意:此方式影响整个系统,需谨慎操作,建议备份原文件。
4. 验证配置是否生效
执行以下命令测试是否能正常访问 HTTPS 资源:
composer diagnose
查看输出中 “SSL/TLS” 是否显示正常。也可以尝试安装一个包来验证网络连接:
composer require vendor/package
若不再出现 SSL certificate problem 错误,则说明配置成功。
基本上就这些。关键在于确保证书文件是 PEM 格式且路径正确。优先推荐使用 COMPOSER_CAFILE 环境变量,灵活且不影响其他应用。









