2015-05-14 97 views
10

我在Laravel 5中使用社交名称来设置Facebook登录。我小心翼翼地跟着指示,直到我卡住了,出现以下错误Laravel 5 Socialite - cURL错误77:错误设置证书验证位置

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

您使用的是真正的SSL证书还是自认证证书? /Applications/XAMPP/xamppfiles/cacert.pem文件是否存在? – detheridge02

+0

@ detheridge02我下载了附加答案中提到的文件,所以它在路径/ Applications/Xampp/xamppfiles – omarsafwany

+0

中,您需要放置绝对路径而不是相对路径 –

回答

23

我被困在这个问题上了。事实证明,我的php.ini文件中有错误地设置证书的路径。忘记了.txt扩展名。

我有什么:

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

我把它改为:

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

希望这有助于。

+0

不工作仍然。我的文件被称为“cacert.pem”no“.txt”扩展名。 – omarsafwany

+0

@omarsafwany,也许你的文件扩展名可能已被设置为隐藏。证书基本上是一个文本文件,因此应该将.txt扩展名与其绝对路径一起添加。重新启动您的apache服务器以使这些更改生效。 –

+0

+可能会尝试在'bin/php/version-X.X/ext'文件夹中移动.pem文件。 – star18bit

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栈重新启动它。你应该很好走。

-2

如果它与git
git config --global http。sslverify “假” 就能解决问题

+6

Down投了响应,禁用SSL永远不是一个好的解决方案。 –

5
  1. 保存此证书(https://curl.haxx.se/ca/cacert.pem)作为cacert.pem.txtC:\xampp\php
  2. 添加到php.ini

    curl.cainfo = "C:\xampp\php\cacert.pem.txt" 
    
  3. 不要忘了重新启动XAMPP(它赢得了” t工作,直到它重新启动)

然后它工作正常!

0

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


然后我把里面的PHP的cacert.pem文件/目录在xampp并重新启动它,它的工作。希望它能帮助别人。

1

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

其次,你需要打开XAMPP php.ini文件并复制此 =>

curl.cainfo = C:\ XAMPP \ PHP \ cacert.pem.txt任何你想要的。

第三请重新启动您的Apache服务器刷新您的本地主页,并应该工作正常。在php.ini文件

1

结帐双引号: 如果您复制和过去的从Web也许你错了双引号:

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

代替

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

1

这个工作对我来说

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

希望它可以帮助一些一:)

+0

如果此代码回答此问题,请考虑添加一些文字说明您的答案中的代码。这样,你就更有可能获得更多赞扬 - 并帮助提问者学习新东西。 – lmo

2

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

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

这是source链接。在php.ini文件\ XAMPP \ PHP \ cacert.pem

更改设定::

0

我有同样的问题。你必须打开该文件。质子交换膜或pem.txt用一个简单的编辑器(集团音符)和过去(https://curl.haxx.se/ca/cacert.pem)在您的文件。你必须重新加载Apache。

1

如果有人使用Plesk运行Windows,并且他们得到此错误。

您必须确保curl.cainfo路径位于Plesk PHP目录内,否则即使使用该修补程序,您也会得到上述错误。

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

固定给我。希望这有助于某个人,某天某处。

+0

如果您在没有访问PHP目录的共享主机中使用Plesk,则只能在每次使用前直接设置卷曲选项CURLOPT_CAINFO。 –

0

我试了@ mahesh-singh-chouhan,@omarsafwany,@LyleK解决方案。但反复得到相同的错误。

在那之后,我没有双引号&更新php.ini文件与.PEM扩展&我成功得到期望的结果与下面的代码。

curl.cainfo=E:\Xampp-5.6.3\php\ext\cacert.pem 

我也附上了截图。

请先尝试上面的用户建议,如果失败也用这个。

感谢解决这对我来说 @马赫什 - 辛格 - chouhan,@omarsafwany,@LyleK 创建方式[![在这里输入的形象描述] [1] [1]

[1]: https://i.stack.imgur.com/3Pgkp.jpg 
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中所做的那样更改该行