首先检查php的openssl扩展是否启用,确保OpenSSL支持httpS;然后配置正确的CA证书路径,下载cacert.pem并设置php.ini中的cURL.cainfo和openssl.cafile指向该文件;接着更新composer至最新版本并确认secure-http为true;最后可选切换到阿里云等支持TLS的国内镜像源,避免关闭SSL验证带来的安全风险。

Composer 下载包时出现 SSL 证书问题,通常是因为系统或 PHP 环境无法验证 https 连接的证书。这个问题在 windows 或某些 linux 发行版中较为常见。直接关闭 SSL 验证虽然能临时解决,但存在安全风险,不推荐长期使用。以下是几种稳妥的解决方案。
检查 PHP 的 openssl 扩展是否启用
确保你的 PHP 环境已开启 OpenSSL 扩展,这是处理 HTTPS 请求的基础。
- 运行 php -m 查看已加载模块,确认列表中有 openssl
- 如果没有,打开 php.ini 文件,找到 ;extension=openssl,去掉前面的分号启用
- 保存后重启 Web 服务或命令行环境
配置正确的 CA 证书路径
Composer 需要可信的证书颁发机构(CA)证书来验证远程服务器。如果路径配置错误,就会报 SSL 错误。
- 下载最新的 ca-bundle.crt 文件,可从 https://www.php.cn/link/5fe4dadcdb001d8566cd20e6d8a20251 获取
- 保存到本地,例如:C:phpextrassslcacert.pem(windows)或 /etc/ssl/certs/cacert.pem(Linux)
- 在 php.ini 中设置:
curl.cainfo = “证书文件完整路径”
openssl.cafile = “证书文件完整路径” - 保存并重启环境
更新 Composer 并检查全局配置
旧版本 Composer 可能存在兼容性问题,同时要确认没有强制跳过 SSL 验证。
- 运行 composer self-update 升级到最新版本
- 执行 composer config –list 查看全局设置
- 检查是否有 disable-tls 或 secure-http 被设为 false
- 如有,运行 composer config –global secure-http true 恢复默认
使用国内镜像源(可选)
如果你网络环境对 HTTPS 支持不稳定,可以切换到支持 HTTPS 的国内镜像,减少连接问题。
- 设置阿里云镜像:
composer config –global repo.packagist composer https://mirrors.aliyun.com/composer/ - 该镜像支持 TLS,不会绕过安全验证,比关闭 SSL 更安全
基本上就这些。只要证书路径正确、PHP 配置完整,Composer 的 SSL 问题大多能解决。避免使用 disable-tls,否则可能引入安全漏洞。
暂无评论


