我正在尝试使用 Stripe 发送 API 请求,但收到错误消息:
cURL 错误 60:SSL 证书问题:无法获取本地颁发者证书
这是我正在运行的代码:
public function chargeStripe()
{
$stripe = new Stripe;
$stripe = Stripe::make(env('STRIPE_PUBLIC_KEY'));
$charge = $stripe->charges()->create([
'amount' => 2900,
'customer' => Input::get('stripeEmail'),
'currency' => 'EUR',
]);
return Redirect::route('step1');
}
我在谷歌上搜索了很多,很多人建议我下载这个文件: cacert.pem ,把它放在某个地方并在我的 php.ini 中引用它。这是我的 php.ini 中的部分:
curl.cainfo = "C:\Windows\cacert.pem"
然而,即使在多次重新启动服务器并更改路径后,我也会收到相同的错误消息。
我在 Apache 中启用了 ssl_module,我在 php.ini
中启用了 php_curl。
我也试过这个修复: 如何修复 PHP CURL 错误 60 SSL
这表明我将这些行添加到我的 cURL 选项中:
curl_setopt($process, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem');
curl_setopt($process, CURLOPT_SSL_VERIFYPEER, true);
在哪里向我的 cURL 添加选项?显然不是通过命令行,因为我的 CLI 找不到命令“curl_setopt”
原文由 LoveAndHappiness 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何解决这个问题呢:
按照 https://curl.se/docs/caextract.html 中的说明下载并提取 cacert.pem
将它保存在文件系统的某个地方(例如,XAMPP 用户可能使用
C:\xampp\php\extras\ssl\cacert.pem
)在您的 php.ini 中,将此文件位置放在
[curl]
部分(将其放入[openssl]
部分也是一个好主意):(参考: https ://laracasts.com/discuss/channels/general-discussion/curl-error-60-ssl-certificate-problem-unable-to-get-local-issuer-certificate)