解决 Laravel 请求 HTTPS 报错 cURL error 60: SSL certificate problem

老牛浏览 5评论 0发表于 更新于

一、问题说明

最近在部署 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 本地的证书链中,让其信任该证书即可。

2.1 安装管理本地信任证书的工具(默认已有,跳过)

bash
sudo apt install ca-certificates

2.2 拷贝自签发证书到系统证书目录

我使用 valet-linux 搭建的环境,因此路径如下,如有不同需要修改为实际证书路径:

bash
sudo cp /home/ilaoniu/.valet/Certificates/mall.test.crt /usr/local/share/ca-certificates/mall.test.crt

2.3 更新系统证书

bash
sudo update-ca-certificates --fresh

然后重启 PHP 和 Nginx 即可。

点赞
收藏
暂无评论,快来发表评论吧~
私信
老牛,俗称哞哞。单纯的九零后理工小青年。喜欢折腾,爱玩,爱音乐,爱游戏,爱电影,爱旅游...
最后活跃于