使用composer安装或升级时报错:curl error 60 while downloading https://packagist.phpcomposer.com/packages.json: SSL certificate problem: certificate has expired。
出现这个原因是因为Let's Encrypt 证书停止了HTTP API的请求支持,导致我们使用Let’s Encrypt 证书的网站没办法更新证书,就出现了证书过期的提醒,所以我们只需要手动更新下证书就行了。
一看这个提示以为是目标地址SSL证书过期了,但反复确认目标SSL证书正常,并且其它设备均可请求,但是宝塔的PHP环境无法请求目标URL,尝试更换PHP版本依然如此。
解决办法
进入服务器终端,执行下面的命令下载根证书:
#下载根证书,下载指定目录,如:/www/cacert.pem wget --no-check-certificate https://curl.haxx.se/ca/cacert.pem
在宝塔后台找到你对应的PHP版本 - 设置 - 配置文件.
搜索下面2个关键词:curl.cainfo/openssl.cafile将这2参数的路径修改为上面cacert.pem证书的路径,比如:
curl.cainfo = /www/cacert.pem openssl.cafile=/www/cacert.pem