【问题标题】:cURL error 60: SSL Certificate unable to get local issuer certificate:Tried EverythingcURL 错误 60:SSL 证书无法获取本地颁发者证书:尝试了一切
【发布时间】:2017-02-02 19:45:47
【问题描述】:

我正在尝试在我的 Laravel 应用程序中通过社交名流创建一个社交身份验证系统。但我收到此错误:

cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

我已经下载了几个 cacert.pem 文件,我在互联网上找到了(基本上,在相同问题的 stackoverflow 上)。我将它们添加到我的

 C:\wamp\bin\apache\apache2.4.9\bin\php.ini
  C:\wamp\bin\php\php5.5.12\php.ini

这样的文件

    curl.cainfo = "C:/somewhere/cacert.pem"` 

    curl.cainfo = "C:\somewhere\cacert.pem"

   curl.cainfo = "c:/somewhere/cacert.pem"

   curl.cainfo = "c:\somewhere\cacert.pem"

我也点击了绿色的 WAMP 图标并转到 PHP->php.ini 并尝试了类似的代码。但一切都是徒劳的。我一次又一次地收到错误。

【问题讨论】:

  • 您是否尝试将证书与您的 cURL 请求一起发送?见here
  • 同意上面,最重要的部分是显示失败的代码行!请在您的 Q 中显示您当前对curl 的最佳尝试。祝你好运。

标签: php ssl curl


【解决方案1】:

尝试绕过

Edit For SSL EROR
vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php

search private function applyHandlerOptions(EasyHandle $easy, array &$conf)
----------------------------------------------------------
if ($options['verify'] === false) {
                unset($conf[CURLOPT_CAINFO]);
                $conf[CURLOPT_SSL_VERIFYHOST] = 0;
                $conf[CURLOPT_SSL_VERIFYPEER] = false;
            } else {
                $conf[CURLOPT_SSL_VERIFYHOST] = 2;
                $conf[CURLOPT_SSL_VERIFYPEER] = true;
----------------------------------------------------------
Change
----------------------------------------------------------
if ($options['verify'] === false) {
                unset($conf[CURLOPT_CAINFO]);
                $conf[CURLOPT_SSL_VERIFYHOST] = 0;
                $conf[CURLOPT_SSL_VERIFYPEER] = false;
            } else {
                $conf[CURLOPT_SSL_VERIFYHOST] = false;
                $conf[CURLOPT_SSL_VERIFYPEER] = false;
-----------------------------------------------------------

【讨论】:

    【解决方案2】:

    i) 从this link 下载“cacert.pem”文件

    ii) 提取并复制到您想要的位置。

    iii) 将此设置添加到您的 php.ini

    curl.cainfo=<path-to>cacert.pem
    

    在我的情况下,位置是 C:\wamp\bin\php\php5.6.24\extras\ssl。所以php.ini设置..

    curl.cainfo ="C:\wamp\bin\php\php5.6.24\extras\ssl\cacert.pem"

    重新启动您的网络服务器,它就会工作!

    【讨论】:

      猜你喜欢
      • 2017-07-19
      • 2019-09-24
      • 2016-10-30
      • 2021-07-17
      • 2021-05-24
      相关资源
      最近更新 更多