Laravel 5 Socialite - cURL错误77:错误设置证书验证位置

问题描述 投票:24回答:19

我在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

任何想法是什么原因造成这个错误?!以及如何解决它?!

php ssl curl laravel-5 laravel-socialite
19个回答
27
投票

我也遇到了这个问题。事实证明,我的php.ini文件中的证书设置路径不正确。忘记.txt扩展名。

我有什么:

curl.cainfo = "C:\xampp\php\cacert.pem"

我把它改成了:

curl.cainfo = "C:\xampp\php\cacert.pem.txt"

希望这可以帮助。


1
投票

这对我有用

curl.cainfo = "C:\xampp\php\cacert.pem.txt"

希望它有助于一些:)


1
投票

如果有人用Plesk运行Windows,他们会收到此错误。

您必须确保curl.cainfo路径位于Plesk PHP目录中,否则即使使用此修复程序也会出现上述错误。

curl.cainfo = "C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP55\extras\ssl\cacert.pem.txt"

为我固定。希望这有一天能帮到某个人某个地方。


1
投票

对于窗户

我在2008年的窗口上更新了php后出现了同样的问题。突然间我的所有php代码都停止了工作。我做了什么,我选择了php.ini然后我发现了一条线

;curl.cainfo =

我改变了

curl.cainfo = "C:\Program Files (x86)\PHP\v7.0\cacert.pem"(记得删除;在curl.cainfo之前)

一切都恢复正常。你需要的是下载一个证书文件cert.pem并将其放在你的服务器上的任何地方,并改变我在php.ini中的行


1
投票

我在遵循有关错误77的说明时遇到了一些问题。

在Windows 7上,根据您的安全设置,可能会阻止下载的文件。看截图:

Windows 7 File Properties

一旦我解锁了文件并确保了正确的用户访问权限,我还必须将文件放在以下位置:

C:\ XAMPP的\ apache的\ BIN \ cacert.pem.txt

除了在这个问题上的其他帖子更改php.ini。

curl.cainfo = “C:\ XAMPP \ PHP \ cacert.pem.txt”

完成上述步骤后,通过XAMPP控制面板重新启动Apache,错误得以解决。


0
投票

我有同样的问题,我尝试了这里提到的每个解决方案和其他帖子,但没有一个工作。我试过了 1)设置适当的文件权限(不起作用) 2)更改文件扩展名(不起作用)

然后我将xacep中的php /目录中的cacert.pem文件移动并重新启动它,它工作。希望它可以帮助某人。


0
投票

我有同样的问题。你必须用一个简单的编辑器(bloc-note)打开文件.pem或pem.txt并超过文件中的(https://curl.haxx.se/ca/cacert.pem)。你必须重新加载apache。


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

0
投票

您似乎忘记为文件路径添加引号。我得到了同样的错误(77),那是因为我忘了添加引号。我通过添加它解决了这个问题。例如:"C:\AppServ\php\cacert.pem"


0
投票

你没有仔细阅读错误,现在仔细阅读

cURL错误77:错误设置证书验证位置:CAfile:D:\ XAMPP \ apache \ bin \ curl-ca-bundle.crt CApath:none(请参阅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


-2
投票

如果它与git有关:

git config --global http.sslverify "false"

将解决问题。


20
投票

在q:\ xampp \ php \ cacert.pem中从https://curl.haxx.se/ca/cacert.pem添加cacert.pem文件

更改php.ini文件中的设置:

curl.cainfo =“C:\ xampp \ php \ cacert.pem


8
投票
  1. 将此证书(https://curl.haxx.se/ca/cacert.pem)保存为cacert.pem.txt中的C:\xampp\php
  2. 添加到php.inicurl.cainfo = "C:\xampp\php\cacert.pem.txt"
  3. 不要忘记重启XAMPP(重启后才能工作)

然后它工作正常!


8
投票

我的错误是:

cURL错误77:错误设置证书验证位置:CAfile:C:\ xampp \ apache \ bin \ curl-ca-bundle.crt CApath:none(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html

这适合我:

  1. https://curl.haxx.se/ca/cacert.pem下载证书
  2. 将cacert.pem文件重命名为curl-ca-bundle.crt
  3. 将文件复制到path / to / xampp / apache / bin
  4. 重启apache

3
投票

关于php.ini文件的结帐双引号:如果你复制并从网上过去,也许你错了双引号:

“C:\ XAMPP \ PHP \ cacert.pem.txt”

代替

“C:\ XAMPP \ PHP \ cacert.pem.txt”


3
投票
  1. 从(https://curl.haxx.se/ca/cacert.pem)下载
  2. 将名称“cacert.pem”更改为“curl-ca-bundle.crt”
  3. 在'php.ini'中,删除';'在以下行:curl.cainfo="C:\xampp\apache\bin\curl-ca-bundle.crt"

这对我有用。


2
投票

您需要用另一个here替换现有证书。之后:

  • 提取并添加到xampp\php\ext
  • 打开xampp\php\php.ini
  • 将此行curl.cainfo='location from the first step'添加到文件末尾。
  • 重启,现在应该正常工作。

这是source链接。


1
投票

我读了我能找到的每一个帖子,这个提供了缺失的部分。

背景:我遇到这个问题将试图让Drupal 8检查新开发环境(基于wamp)的可用更新。

  1. 从Mozilla获取证书数据的副本,可在此处找到:https://curl.haxx.se/ca/cacert.pem如果您想了解更多有关此内容的信息,请访问:https://serverfault.com/questions/241046/what-is-the-cacert-pem-and-for-what-to-use-that
  2. 将文件保存为“cacert.pem.txt”而不是“cacert.pem”这是丢失的部分,谢谢LyleK!。我不知道为什么,但你必须在最后有.txt扩展名,否则它不起作用。
  3. 将“cacert.pem.txt”文件的位置路径显式添加到php.ini中

例:

[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堆栈重新启动它。你应该好好去。


1
投票

首先,您需要下载“curl.cainfo”文件,然后需要将其定位到C:\ xampp \ php \ cacert.pem.txt。

其次,你需要在Xampp中打开你的php.ini文件并复制这个=>

curl.cainfo = C:\ xampp \ php \ cacert.pem.txt你想要的任何地方。

第三,请重新启动Apache服务器刷新本地主页,这应该可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.