每当我使用Composer安装/更新命令或 "diagnose" 命令
composer diagnose -vvv
时,都会出现错误:
"curl error 60 while downloading https://repo.packagist.org/packages.json: SSL certificate problem: unable to get local issuer certificate"
我已经尝试过以下方法:
- 更新到最新的Ubuntu(22.04)并使用了:
sudo apt install ca-certificates --reinstall
sudo update-ca-certificates -f
- 修复路径不匹配的问题,这似乎是最初的问题(参见:如何在尝试访问HTTPS URL时使用cURL处理证书?):
sudo mkdir -p /etc/pki/tls/certs
sudo ln -s /etc/pki/tls/certs/ca-bundle.crt /etc/pki/tls/certs/ca-certificates.crt
实际上,诊断结果与预期相符:
检查 CA 文件 /etc/pki/tls/certs/ca-bundle.crt:有效
- 重新运行 Composer 安装程序
这里还有一些可能会有用的信息:
Composer version: 2.2.6
PHP version: 8.1.2
PHP binary path: /usr/bin/php8.1
OpenSSL version: OpenSSL 3.0.2 15 Mar 2022
cURL version: 7.81.0 libz 1.2.11 ssl OpenSSL/3.0.2
--no-check-certificate
的“原因”(wget(1)
也受到了影响),但是考虑到系统上的证书存储已经损坏,如何解决?在没有验证的情况下替换它(甚至在答案中也没有进行二次检查!)对于这个问题来说似乎有点简单化了(对我来说)。这就是为什么我建议至少(快速)双重检查新文件是否合法(并且问题仍然存在,而且在同一系统上无法再次确定可读性 - 从技术上讲)。至少使用sha256sum。 - hakre