Laravel Homestead:如何解决“ cURL错误60:SSL证书问题”

时间:2019-06-13 08:06:27

标签: php laravel ubuntu curl homestead

我正在使用VirtualBox设置新的Laravel 5.8 Homestead,一切正常,除了curl可以使我获得

  

“ cURL错误60:SSL证书问题”

使用Guzzle客户端时。 (我不想忽略ssl)

有什么主意吗?非常感谢

我试图替换:

curl.cainfo = /etc/ssl/certs/ca-certificates.crt 

通过

curl.cainfo = /etc/ssl/certs/cacert.pem

https://curl.haxx.se/ca/cacert.pem下载

在/etc/php/7.3/fpm/php.ini中(以及7.1、7.2)

2 个答案:

答案 0 :(得分:0)

好的,问题似乎已经解决。对于那些有同样问题的人:

当您尝试通过https卷曲自己的本地网站时,curl会验证证书在/etc/ssl/certs/ca-certificates.crt中存在,显然不存在。

您必须使用位于以下位置的vim(或cat)打开由Homestead.yaml生成的证书文件:

/etc/nginx/ssl/ca.homestead.homestead.crt

并将内容复制到位于以下位置的默认ca-certificate.crt的末尾

/etc/ssl/certs/ca-certificates.crt 

默认情况下,默认的ca-certificates.crt不包含您的个人证书。

仅此而已!

答案 1 :(得分:0)

检查网站是否未使用自定义ssl证书。

尝试在chrome中打开证书并导出所有证书,并将其添加到自定义custom.pem

然后以这种方式在Guzzle中使用它:

$client = new Guzzle\Http\Client();
$client->setDefaultOption('verify', '/path/to/custom.pem');

现在它可以工作了!

您也可以使用openssl command下载证书,但我认为这不是正确的证书。所以我不得不手动下载它们。

希望这会有所帮助!

有关更多信息,您可以访问此issue