确认是本地证书配置问题,需运行php -r "print_r(openssl_get_cert_locations());"检查default_cert_file和ini_cafile路径有效性,再用curl -v验证ssl错误;下载mozilla官方cacert.pem,以绝对路径配置php.ini中curl.cainfo和openssl.cafile,重启终端后运行composer diagnose验证https连接ok。

确认是本地证书配置问题,不是镜像站故障
别急着换镜像或关 SSL——先跑这句命令:php -r "print_r(openssl_get_cert_locations());"。重点看 default_cert_file 和 ini_cafile 两个字段:如果路径为空、指向不存在的文件、或对应文件大小 ≤10KB(说明是空包或过期 bundle),那就是本地证书没配好。再补测一句:curl -v https://packagist.org/packages.json,如果也报 SSL certificate problem: unable to get local issuer certificate,基本能排除网络、代理、镜像站本身的问题。
下载并配置最新 cacert.pem 到 php.ini
不要复用系统自带的符号链接或旧证书包,直接用 Mozilla 官方维护的根证书:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 下载地址:
https://curl.se/ca/cacert.pem - 保存为绝对路径,例如:
C:/php/extras/ssl/cacert.pem(Windows)、/usr/local/etc/php/cacert.pem(macOS Homebrew)、/etc/ssl/certs/cacert.pem(Linux) - 编辑 CLI 模式下真正生效的
php.ini(先运行php --ini确认路径) - 添加或取消注释这两行(必须写绝对路径,不能用
~或相对路径):curl.cainfo = "C:/php/extras/ssl/cacert.pem"openssl.cafile = "C:/php/extras/ssl/cacert.pem" - 改完保存,关闭当前终端,新开一个——CLI 模式不重启终端,新配置不生效
验证是否生效,再试中文镜像
运行 php -r "print_r(openssl_get_cert_locations());",确认 default_cert_file 和 ini_cafile 已更新为你刚写的路径;再执行 composer diagnose,看输出里 HTTPS connection 是否显示 OK。此时再连阿里云镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,后续命令就不再报 SSL 错误了。
别踩这些坑
Windows 用户常见错误:只配了 curl.cainfo 没配 openssl.cafile,或路径用了反斜杠没加双引号;macOS Homebrew PHP 默认不带 CA 包,default_cert_file 路径存在但文件根本没放进去;Linux 上 /etc/ssl/certs/ca-certificates.crt 很可能是空链接或权限为 000,PHP 读不了就静默 fallback 到无证书状态;改完 php.ini 不关终端重开,导致你以为改了但实际没加载。










