Windows 10安装Composer遇SSL证书验证失败错误求助
解决Windows下Composer安装SSL证书验证失败的问题
我之前在Windows上装Composer时也踩过这个SSL证书验证的坑,折腾了好一阵才搞定,给你几个实测有效的解决方案:
先检查PHP的OpenSSL扩展是否启用
这是最容易被忽略的前提:- 找到PHP安装目录下的
php.ini文件(如果是XAMPP/WAMP这类集成环境,就在对应PHP文件夹里) - 搜索
extension=openssl,如果前面有分号;,把分号去掉,保存文件 - 重启Web服务器(用命令行的话,关闭再重新打开命令提示符)
- 找到PHP安装目录下的
更新CA证书文件(最稳妥的核心方案)
证书验证失败大多是因为系统或PHP的CA证书过期不全:- 下载最新的CA证书文件(cacert.pem),可以从Mozilla官方证书库获取(直接搜索下载即可)
- 把
cacert.pem放到PHP目录下的extras\ssl文件夹里(没有ssl文件夹就新建一个) - 再次打开
php.ini,找到以下两行,去掉前面的分号,填入证书的绝对路径:curl.cainfo = "C:\你的PHP安装路径\extras\ssl\cacert.pem" openssl.cafile = "C:\你的PHP安装路径\extras\ssl\cacert.pem" - 保存
php.ini后重启环境,再尝试安装Composer
临时跳过SSL验证(仅紧急情况用)
赶时间的话可以临时绕过,但不建议长期这么做,有安全风险:
打开命令提示符,依次执行:php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" -- --no-verify-peer php composer-setup.php php -r "unlink('composer-setup.php');"手动导入Composer网站的证书
如果系统根证书存储有问题,试试手动导入:- 用浏览器打开
https://getcomposer.org,点击地址栏锁形图标,选择「查看证书」 - 在证书详情里选择「导出」,保存为Base64编码的CER格式文件
- 打开Windows证书管理器(搜索
certmgr.msc),找到「受信任的根证书颁发机构」→「证书」,右键选「所有任务」→「导入」,跟着向导导入刚才的CER文件 - 重启浏览器和命令行,再尝试安装
- 用浏览器打开
内容的提问来源于stack exchange,提问作者user3510216




