cURL错误60:SSL证书无法获得本地颁发者证书:尝试了一切

时间:2016-09-25 11:33:16

标签: php ssl curl

我正在尝试通过我的Laravel应用程序中的社交名称制作社交认证系统。但我收到此错误:

function removeTxt() {
    var elements = document.querySelectorAll("*");          
    for(var i = 0; i < elements.length; i++) {
        if (elements[i].parentElement && elements[i].tagName=="INPUT"){
            elements[i].parentElement.removeChild(elements[i]);
            i--;
            continue;
        }
        for (j=0;elements[i].childNodes && j<elements[i].childNodes.length;j++){
            child = elements[i].childNodes[j];
            if(child && child.nodeType == 3) {
               elements[i].removeChild(child);
               i--;
            }
        }
    }
}

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

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

这样的文件

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

我还点击了绿色WAMP图标并转到 curl.cainfo = "C:/somewhere/cacert.pem"` curl.cainfo = "C:\somewhere\cacert.pem" curl.cainfo = "c:/somewhere/cacert.pem" curl.cainfo = "c:\somewhere\cacert.pem" 并尝试了类似的代码。但都是徒劳。我一次又一次地收到错误。

2 个答案:

答案 0 :(得分:1)

TRY绕过

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;
-----------------------------------------------------------

答案 1 :(得分:0)

i)下载&#39; cacert.pem&#39;来自this link

的文件

ii)提取它&amp;复制到您想要的位置。

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

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

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

curl.cainfo =&#34; C:\ wamp \ bin \ php \ php5.6.24 \ extras \ ssl \ cacert.pem&#34;

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