cURL エラー 60: SSL 証明書: ローカル発行者証明書を取得できません 質問する

cURL エラー 60: SSL 証明書: ローカル発行者証明書を取得できません 質問する

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');
}

Google でいろいろ検索してみたところ、多くの人がこのファイルをダウンロードするよう勧めてきました:cacert.pemこれをどこかに置いて、php.ini で参照します。これは私の php.ini の一部です:

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

しかし、サーバーを数回再起動してパスを変更した後でも、同じエラー メッセージが表示されます。

Apache で ssl_module を有効にし、 で php_curl を有効にしましたphp.ini

また、cURL オプションに次の行を追加することを提案する別の修正も試しました。

curl_setopt($process, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem');
curl_setopt($process, CURLOPT_SSL_VERIFYPEER, true);

cURL にオプションを追加するにはどうすればいいですか? CLI でコマンド「curl_setopt」が見つからないため、どうやらコマンドラインからは追加できないようです。

ベストアンサー1

この問題を解決する方法:

  • ダウンロードして解凍するcacert.pem以下の指示に従って詳しくはこちら

  • ファイルシステムのどこかに保存します(たとえば、XAMPPユーザーは を使用しますC:\xampp\php\extras\ssl\cacert.pem)。

  • php.ini で、[curl]セクションにこのファイルの場所を入力します ( セクションに入力する[openssl]のも良いでしょう)。

[curl]
curl.cainfo = "C:\xampp\php\extras\ssl\cacert.pem"

[openssl]
openssl.cafile = "C:\xampp\php\extras\ssl\cacert.pem"
  • ウェブサーバー(Apacheなど)とPHP FPMサーバー(該当する場合)を再起動します。

(参照:https://laracasts.com/discuss/channels/general-discussion/curl-error-60-ssl-certificate-problem-unable-to-get-local-issuer-certificate

おすすめ記事