我正在使用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)
答案 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