Windows 11下CURL证书读取失败及Composer更新问题求助
解决方案
一、更新系统根证书库
- 先确认系统时间准确:打开「设置」→「时间和语言」→「日期和时间」,开启「自动设置时间」和「自动设置时区」,完成时间同步(证书验证对系统时间准确性要求很高)。
- 手动更新根证书:
- 以管理员身份打开命令提示符,执行以下命令从Windows更新获取最新根证书包:
certutil -generateSSTFromWU roots.sst - 接着执行命令将证书导入系统信任库:
certutil -addstore -f root roots.sst
- 以管理员身份打开命令提示符,执行以下命令从Windows更新获取最新根证书包:
二、关闭Schannel强制证书吊销检查
针对CRYPT_E_NO_REVOCATION_CHECK错误,可通过注册表调整:
- 按Win+R输入
regedit打开注册表编辑器,导航到路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings - 右键空白处,新建「DWORD(32位)值」,命名为
DisableCrlCheck,设置数值数据为1。 - 重启电脑使设置生效。
三、配置PHP与Composer的CA证书路径
如果系统修复后Composer仍报curl error 60,需为PHP的curl扩展指定CA证书:
- 下载最新的Mozilla CA证书包,保存到本地固定路径(例如
C:\php\cacert.pem,若使用XAMPP则路径为C:\xampp\php\extras\ssl\cacert.pem)。 - 找到PHP的
php.ini配置文件,添加或修改以下两行:curl.cainfo = "C:\php\cacert.pem" openssl.cafile = "C:\php\cacert.pem" - 保存后执行
composer self-update,再尝试composer update。
四、验证修复效果
执行以下命令测试curl是否正常:
curl https://repo.packagist.org/packages.json
若返回正常的JSON内容,说明SSL验证已修复;再测试curl https://maintenanceplus.nl,无错误则问题彻底解决。
内容的提问来源于stack exchange,提问作者Jilco Tigchelaar
相关产品推荐
相关产品推荐

