Drupal站点Composer安装时SSL证书验证失败问题求助
Drupal Composer Install 补丁下载SSL验证失败问题排查与解决
问题成因
- Git重装操作可能覆盖或破坏了系统、PHP的SSL证书信任配置,导致CA证书链不完整
- 公司ZScaler代理的证书未被正确注入到PHP/Composer的信任列表(即使卸载ZScaler,可能残留配置或证书缓存)
- PHP配置文件
php.ini中SSL相关参数未正确指向有效CA证书文件
解决步骤
1. 确认Composer关联PHP的php.ini配置
- 执行命令查看Composer使用的PHP路径:
composer diagnose - 找到对应PHP版本的
php.ini文件,检查以下两项配置,确保指向有效CA证书文件(如cacert.pem):openssl.cafile = "C:\Program Files\Common Files\SSL\cacert.pem" curl.cainfo = "C:\Program Files\Common Files\SSL\cacert.pem" - 若路径为空或错误,更新后重启PHP服务(如XAMPP的Apache)
2. 为Composer全局指定CA证书
- 命令行执行:
composer config --global cafile "C:\Program Files\Common Files\SSL\cacert.pem" - 或手动修改全局Composer配置文件(路径:
C:\Users\[你的用户名]\AppData\Roaming\Composer\config.json),添加:{ "config": { "cafile": "C:\\Program Files\\Common Files\\SSL\\cacert.pem" } }
3. 修复Git的SSL证书配置
- 执行命令设置Git的SSL CA证书路径:
git config --global http.sslCAinfo "C:\Program Files\Common Files\SSL\cacert.pem" - 确认Git SSL验证处于开启状态:
git config --global http.sslVerify true
4. 清理Composer缓存并重试
- 清理缓存:
composer clear-cache - 重新执行安装命令:
composer install
5. 系统层面SSL连通性测试
- 使用curl测试补丁URL的SSL连接,排查系统级信任问题:
curl -v https://www.drupal.org/files/issues/2022-12-20/2689459-161.patch - 若curl也返回证书验证失败,需确认CA证书文件是否包含Drupal.org服务器的完整证书链,或检查系统代理设置是否残留(执行
netsh winhttp show proxy查看,必要时临时关闭代理)
额外注意事项
- 确保
C:\Program Files\Common Files\SSL文件夹及其中的cacert.pem文件具备PHP/Composer进程的读取权限 - 使用最新版本的CA证书文件,避免因证书过期导致验证失败
内容的提问来源于stack exchange,提问作者techenzie
相关产品推荐
相关产品推荐

