Lightsail服务器间cURL请求报SSL证书过期但实际证书未到期问题求助
问题根因
该故障由2021年9月Let's Encrypt旧根证书DST Root CA X3过期的兼容性问题导致:
- 你使用的Bitnami LAMP栈自带独立的CA根证书包,没有同步更新,仍然保留了已过期的DST Root CA X3根证书,校验Let's Encrypt签发的证书时会误判为过期
- 本地机器的系统CA证书包已经完成更新,移除了过期根证书,因此可以正常访问
修复步骤
- 首先备份原有CA证书包,防止操作失误
cp /opt/bitnami/common/openssl/certs/curl-ca-bundle.crt /opt/bitnami/common/openssl/certs/curl-ca-bundle.crt.bak
- 下载最新的公共CA根证书包替换Bitnami自带的旧包
curl https://curl.se/ca/cacert.pem -o /opt/bitnami/common/openssl/certs/curl-ca-bundle.crt
- 验证修复效果,执行之前的测试命令确认SSL校验正常
curl -I https://<你的目标服务器地址> -v
- 重启Bitnami Apache服务,让PHP项目读取新的CA证书配置
/opt/bitnami/ctlscript.sh restart apache
临时应急方案(不推荐长期生产环境使用)
如果需要紧急恢复业务,可以临时跳过证书校验:
- 命令行curl请求添加
-k参数 - PHP curl请求添加配置:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
内容的提问来源于stack exchange,提问作者Halo
相关产品推荐
相关产品推荐

