Windows 11下无法安装Composer:SSL证书验证失败求助
Windows 11下Composer安装SSL证书验证失败的解决方法
检查PHP.ini的完整SSL配置
除了已配置的curl.cainfo,需同时设置openssl.cafile指向同一个证书文件:openssl.cafile = C:\PHP\PHP8.2.17\cacert.pem确保修改的是CLI模式使用的php.ini:在命令行执行
php --ini,查看Loaded Configuration File对应的路径,修改该文件后重启命令行窗口生效。验证证书文件有效性
- 重新下载最新版cacert.pem,替换现有文件,避免文件损坏或不完整;
- 创建测试脚本验证证书是否生效:新建
test.php文件,写入以下代码:
在命令行执行<?php $context = stream_context_create([ 'ssl' => [ 'cafile' => 'C:\PHP\PHP8.2.17\cacert.pem', 'verify_peer' => true, 'verify_peer_name' => true ] ]); $result = file_get_contents('https://getcomposer.org/versions', false, $context); var_dump($result); ?>php test.php,若能返回版本内容则证书配置正常,否则检查路径或文件完整性。
导入证书到Windows系统信任存储
将cacert.pem导入系统受信任根证书颁发机构:- 打开
mmc控制台,添加“证书”管理单元,选择“计算机账户”; - 展开“受信任的根证书颁发机构”→“证书”,右键选择“所有任务”→“导入”;
- 按照向导选择cacert.pem文件完成导入。
- 打开
临时绕过SSL验证(仅测试用)
若以上方法均无效,可临时使用无验证安装命令:php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" -- --no-verify-peer php composer-setup.php --no-verify-peer注意:此方法存在安全风险,安装完成后需尽快修复证书问题。
检查PHP扩展与环境
- 确认OpenSSL扩展已启用:执行
php -m,查看输出中是否包含openssl,若未启用,在php.ini中去掉extension=openssl前的分号; - 查看OpenSSL版本兼容性:执行
php -i | findstr OpenSSL,确认版本与PHP8.2.17兼容。
- 确认OpenSSL扩展已启用:执行
排查代理干扰
若系统使用代理,临时清空代理设置后重试:set HTTP_PROXY= set HTTPS_PROXY=若代理需自定义CA证书,需将代理证书合并到cacert.pem中。
内容的提问来源于stack exchange,提问作者Dom
相关产品推荐
相关产品推荐

