最近在部署 Laravel + 小程序本地测试环境,请求 API 接口 https://mall.test/api/v1/authorizations 时报错:cURL error 60: SSL certificate problem: unable to get local issuer certificate 。
最初以为是 PHP 配置中 cainfo 缺失导致证书问题,正确配置后未解决。后来想了想,API 程序放在 Ubuntu WSL 中,域名使用的 mall.test ,应该是 Laravel 向 https://mall.test/api/v1/authorizations 发起请求时,cURL 无法验证该域名使用的 SSL 证书。
搞清楚原因后,解决起来就简单了。我们只需要将自签发的证书添加到 Ubuntu 本地的证书链中,让其信任该证书即可。
sudo apt install ca-certificates我使用 valet-linux 搭建的环境,因此路径如下,如有不同需要修改为实际证书路径:
sudo cp /home/ilaoniu/.valet/Certificates/mall.test.crt /usr/local/share/ca-certificates/mall.test.crtsudo update-ca-certificates --fresh然后重启 PHP 和 Nginx 即可。