我在Laravel 5中使用社交名流来设置Facebook登录。我仔细按照说明操作,直到遇到以下错误
cURL error 60: SSL certificate problem: unable to get local issuer certificate
所以我找到了this的答案来修复它确实通过但后来我收到了这个错误
cURL error 77: error setting certificate verify locations:
CAfile: /Applications/XAMPP/xamppfiles/cacert.pem
CApath: none
任何想法导致此错误的原因是什么?!以及如何解决它?!
答案 0 :(得分:27)
我也遇到了这个问题。事实证明,我的php.ini文件中的证书设置路径不正确。忘了.txt扩展名。
我有什么:
curl.cainfo = "C:\xampp\php\cacert.pem"
我将其更改为:
curl.cainfo = "C:\xampp\php\cacert.pem.txt"
希望这会有所帮助。
答案 1 :(得分:20)
从https://curl.haxx.se/ca/cacert.pem添加cacert.pem文件 C:\ XAMPP \ PHP \ cacert.pem
更改php.ini文件中的设置:
curl.cainfo =" C:\ xampp \ php \ cacert.pem
答案 2 :(得分:8)
cacert.pem.txt
C:\xampp\php
添加到php.ini
:
curl.cainfo = "C:\xampp\php\cacert.pem.txt"
然后它运作正常!
答案 3 :(得分:7)
我的错误是:
cURL错误77:设置证书验证位置时出错:CAfile: C:\ xampp \ apache \ bin \ curl-ca-bundle.crt CApath:无(请参见 http://curl.haxx.se/libcurl/c/libcurl-errors.html)
这对我来说很好:
答案 4 :(得分:3)
php.ini文件中的结帐双引号: 如果你复制并从网上过去,也许你错了双引号:
” C:\ XAMPP \ PHP \ cacert.pem.txt”
而不是
“C:\ XAMPP \ PHP \ cacert.pem.txt”
答案 5 :(得分:3)
curl.cainfo="C:\xampp\apache\bin\curl-ca-bundle.crt"
对我有用。
答案 6 :(得分:2)
我在 windows 上的 php 版本 8.0.3 中遇到了同样的问题: 解决方案是我必须取消注释并在 php.ini 文件中设置 openssl.capath=path of certs。
我已经设置了 openssl.cafile 所以它没有为此抛出错误但是 oepnssl.capath 没有设置所以错误在那里。
openssl.cafile="C:\Users\Akta\Softwares\php-8.0.3-nts-Win32-vs16-x64\extras\ssl\demoCA\cacert.pem"
openssl.capath="C:\Users\Akta\Softwares\php-8.0.3-nts-Win32-vs16-x64\extras\ssl\demoCA\certs"
答案 7 :(得分:2)
您需要将现有证书替换为另一个here。之后:
xampp\php\ext
xampp\php\php.ini
curl.cainfo='location from the first step'
添加到文件末尾。这是source链接。
答案 8 :(得分:1)
如果有人使用Plesk运行Windows,则会出现此错误。
您必须确保curl.cainfo路径位于Plesk PHP目录中,否则即使使用此修复程序也会出现上述错误。
curl.cainfo = "C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP55\extras\ssl\cacert.pem.txt"
为我固定。希望这有一天能帮到某个人。
答案 9 :(得分:1)
在您的 php.ini 文件中,您还应该更新您的
;openssl.cafile
使用您在更新时使用的相同 cacert.pem 链接
;curl.cainfo
看看我之前和之后的
;curl.cainfo =
;openssl.cafile=
到
curl.cainfo ="C:\php-7.4.11\extras\ssl\cacert.pem"
openssl.cafile="C:\php-7.4.11\extras\ssl\cacert.pem"
curl.cainfo ="C:\php-7.4.11\extras\ssl\cacert.pem" 这修复了 cURL 60 错误,而 openssl.cafile="C:\php-7.4.11\extras\ssl\ cacert.pem”修复了 cURL 77 错误。
玩得开心!
注意:在尝试之前不要忘记重新启动服务器。
对于那些希望找到他们的 php.ini 文件的人,请在 cd 进入您的应用程序后使用此命令
php -i | grep 'Configuration File'
答案 10 :(得分:1)
按照有关错误77的说明,我遇到了一些问题。
在Windows 7上,取决于您的安全设置-下载的文件可能被阻止。查看屏幕截图:
一旦我解除阻止文件并确保适当的用户访问权限,我还必须将文件放在以下位置:
C:\ xampp \ apache \ bin \ cacert.pem.txt
除了根据该问题的其他帖子更改php.ini。
curl.cainfo =“ C:\ xampp \ php \ cacert.pem.txt”
完成上述步骤后,通过XAMPP控制面板重新启动Apache,该错误已解决。
答案 11 :(得分:1)
适用于Windows
我在2008年的窗口上更新了 php 后出现了同样的问题。突然间,我所有的 php 代码都停止了工作。我做了什么,我选择了php.ini然后我发现了一行
;curl.cainfo =
然后我改为
curl.cainfo = "C:\Program Files (x86)\PHP\v7.0\cacert.pem"
(记得删除;在curl.cainfo之前)
一切都恢复正常。你需要的是下载一个证书文件cert.pem并将它放在你的服务器上的任何地方,并改变我在php.ini中的行
答案 12 :(得分:1)
这对我有用
titanium build
希望它有助于某人:)
答案 13 :(得分:1)
首先,你需要下载你的" curl.cainfo"文件然后你需要找到 C:\ xampp \ php \ cacert.pem.txt 。
其次,你需要在Xampp中打开你的php.ini文件并复制它 的 => 强>
curl.cainfo = C:\ xampp \ php \ cacert.pem.txt 随时随地。
请重新启动 Apache服务器刷新本地主页,这应该可以正常工作。
答案 14 :(得分:1)
我阅读了我能找到的每一个帖子,这个提供了缺失的部分。
背景:我遇到此问题会尝试让Drupal 8检查新开发环境(基于wamp)的可用更新。
示例:
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo = "C:\wamp\custom\cacert.pem.txt"
如果你正在使用wamp stack重启它。你应该好好去。
答案 15 :(得分:0)
我已经尝试了@ mahesh-singh-chouhan,@ omarsafwany,@ LyleK解决方案。但是反复得到同样的错误。
之后,我更新php.ini文件,没有双引号& .pem 扩展名&我用下面的代码成功获得了理想的结果。
curl.cainfo=E:\Xampp-5.6.3\php\ext\cacert.pem
我还附上了截图。
请先尝试以上用户建议,如果失败也请使用此功能。
感谢您的解决方案它为我创造了方式 @ mahesh-singh-chouhan,@ omarsafwany,@ LyleK [![在此处输入图像说明] [1]] [1]
[1]: https://i.stack.imgur.com/3Pgkp.jpg
答案 16 :(得分:0)
答案 17 :(得分:0)
似乎您忘记为文件路径添加引号。我遇到了相同的错误(77),这是因为我忘记添加引号了。我通过添加解决了问题。例如:"C:\AppServ\php\cacert.pem"
答案 18 :(得分:0)
您没有仔细阅读错误,现在仔细阅读
cURL错误77:错误设置证书验证位置:CAfile:D:\ XAMPP \ apache \ bin \ curl-ca-bundle.crt CApath:无(请参见http://curl.haxx.se/libcurl/c/libcurl-errors.html)
这意味着您缺少一个名为curl-ca-bundle.crt的文件来验证证书位置, 所以你只需要把这个(curl-ca-bundle.crt)文件放到你的XAMPP \ apache \ bin \文件夹中 一切正常,错误77消失了。
curl-ca-bundle.crt,要下载文件,您可以使用此链接https://github.com/nirmalkumar98/nk
答案 19 :(得分:0)
我有同样的问题,我尝试了这里提到的每个解决方案和其他帖子,但没有一个工作。我试过了
1)设置适当的文件权限(没有工作)
2)更改文件扩展名(没有工作)
然后我将cacert.pem文件移到xampp中的php /目录中并重新启动它,它工作。希望它可以帮到某人。
答案 20 :(得分:0)
我在Windows 2012中遇到了这个问题
我有一个虚拟专用服务器托管laravel
然后我遇到此错误,并且
在我的php.ini文件中找到此行
[卷曲]
; CURLOPT_CAINFO选项的默认值。这必须是
;绝对路径。 curl.cainfo = extras / ssl / cacert.pem
我将我的下载文件粘贴到php文件中,如下所示:
curl.cainfo =“ C:\ Program Files(x86)\ PHP \ v7.2 \ extras \ ssl \ cacert.pem”
就我而言,我只是重新启动网站
答案 21 :(得分:0)
要解决此错误,请使用以下代码:
$client = new Client(['verify' => false ]);
并在您的代码中像这样使用$ client:
$headers = [
'Authorization' => 'Bearer ' . $token,
'Accept' => 'application/json',
RequestOptions::BODY => ' any code for your body ',
];
$response = $client->request('POST', 'bar', [
'headers' => $headers
]);
$response = $response->getBody()->getContents();
return $response;
答案 22 :(得分:-2)
如果它与git相关:
git config --global http.sslverify "false"
将解决问题。