laravel 5.7 cURL错误60:SSL证书问题:无法获取本地颁发者证书

时间:2019-01-28 10:34:57

标签: php laravel ssl wamp

我正在使用该软件包用于laravel 5.7

composer require ipecompany/smsirlaravel

我所有的链接都工作正常,但软件包管理面板链接显示ssl错误。 我试图下载cacert.pem文件并将其放在

C:\wamp64\bin\php\php7.1.9\extras\ssl\cacert.pem

C:\wamp64\bin\apache\apache2.4.27\bin\cacert.pem

但由于此错误而没有运气

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

我正在使用wamp 3.1.0和php版本7.1.9,因此任何想法都可以解决此错误??

1 个答案:

答案 0 :(得分:1)

尝试禁用检查:

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

更新

好的,抱歉,我不好,没有注意到您使用的是外部软件包。该软件包使用Guzzle,要在Guzzle中禁用此检查,您需要添加this option

作为一种选择,您需要创建自己的类并扩展此Ipecompany\Smsirlaravel\Smsirlaravel类并重写方法。不好的是,在此类的每个方法中,类都会创建GuzzleClient的新实例,因此您需要覆盖所有方法...我建议在您的类$client中添加字段,并在构造函数中创建它:

<?php

namespace App\Vendors\Smsirlaravel;

use Ipecompany\Smsirlaravel\Smsirlaravel;
use GuzzleHttp\Client;

class SendSmsIr extends Smsirlaravel {
  protected $client;

  public function __construct()
  {
    $this->client = new Client(['verify' => config('smsirlaravel.ssl_verify')]);
  }

  /** other methods */
}

config/smsirlaravel.php中只需将此行添加到数组

'ssl_verify' => false, // true, false or path to certificate '/path/to/cert.pem'