۱ mohammad dadkhah
cURL error 60
mreza حل شده توسط mreza

سلام

در این بخش به این ارور بر می‌خورم

لطفا راهنمایی کنید.

GuzzleHttp\Exception\RequestException
cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://www.google.com/recaptcha/api/siteverify?secret=6LfA3OscAAAAAKN-uQPUzAu06XZdCZVJ9IWoZj3N&response=03AGdBq245cEPQOloy3rSF_Ks-u09H__S3_yoj7DTgLuGzhhmQwoizk1WwBhzc6MkOFZhS12qgYdCxo7FU2Xk3mHZvAcnGBwb23pbekl5JdIt3Nmy5J7sBANhswSyiolrwev8-jda0aOW6BfblwnUtpBeqDSkdj9wRh8vxmTF-HLOXQ0s_wlKRqWNTRPj93EdF3QBW-XcrMQShXd4W1TP7JSm_1caH72_34LkAu14Kh9tC8OcVndWohigEJ97ztdeIinZsIX1r1J1FY08J6VBWH_EGKzIRF_U8wJze0eHKHub52MiNetdXPgR2x4XPNYaaJuD2rzlU3Ira3brt4WwaXjABW6zHFwd5zbaPUDHtpzhr_fohBSmqFuoxrFsQkTAbojbYeqoHA9bxl-46VnSMoZel860DXbHITpeu00CnV5nMBh5F6pJu3a-vNJeG_yFSvWlGEbSP0aaQDV-jDVjpDB-7hKkTGDfBjeUOw68iVazgPYna5dhvg7w
http://127.0.0.1:8000/Auth/login

Recaptcha.php

<?php
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
use GuzzleHttp\Client;
class Recaptcha implements Rule
{
    /**
     * Create a new rule instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }
    /**
     * Determine if the validation rule passes.
     *
     * @param  string  $attribute
     * @param  mixed  $value
     * @return bool
     */
    public function passes($attribute, $value)
    {
        $client=new Client([
           'base_uri'=>'https://www.google.com/recaptcha/api/'
        ]);
        $response = $client->post('siteverify', [
            'query' => [
                'secret' => config('services.recaptcha.secret_key'),
                'response' => $value
            ]
        ]);
        dd(json_decode($response->getBody()));
    }
    /**
     * Get the validation error message.
     *
     * @return string
     */
    public function message()
    {
        return 'The validation error message.';
    }
}

قبل از هرچیزی بدونید که برای استفاده از کپچای گوگل در لوکال هاست باید این دامنه رو در داشبورد گوگل خودتون به عنوان یه آدرس قابل اعتماد تایید کنید و اگر اینکار رو انجام ندید خطاهای مختلفی دریافت میکنید چون دیگر مثل سابق این موضوع به شکل خودکار اتفاق نمیفته اگر تمام مقدمات رو درست انجام دادین یکی از روشهای زیر رو انجام بدین

 

این مشکل بخاطر استفاده نکردن از پروتکل امن SSL هست که خب چندین راه حل داره:

 

روش اول:

 در پروژه لوکال خودتون از SSL‌ استفاده کنید تا url پروژه با https شروع بشه و مشکل حل بشه

 

روش دوم:

 زمانی که به صورت لوکال تست میکنید در guzzle تنظیمات چک کردن ssl رو به شکل زیر غیرفعال کنید و حتما حتما فقط در محیط توسعه چنین کاری کنید نه محیط پروداکشن

$client->request('POST', 'https://google.com', ['verify' => false]);

 

روش سوم: یک روش منطقی‌تر

 

فایل cacert.pem را دانلود کنید

https://curl.haxx.se/docs/caextract.html

 

این فایل را در مسیر نصب نرم‌افزار زمپ و فولدر ssl قرار دهید (مشابه مسیر زیر)

C:\xampp\php\extras\ssl\cacert.pem

در فایل php.ini خط زیر را قرار دهید


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

نرم افزار زمپ را ریستارت کنید و مشکل برطرف شده

 

بهترین پاسخ
mreza ۰۲ آبان ۱۴۰۰، ۰۸:۳۳