błąd cURL 60: certyfikat SSL prblm: nie można uzyskać lokalnego certyfikatu wystawcy [duplikat]
To pytanie ma już odpowiedź tutaj:
- Nie można uzyskać certyfikatu lokalnego wystawcy curl error 60: SSL certificate: unable to get local issuer certificate 16 odpowiedzi
Chcę zebrać listę filmów przesłanych na określony kanał za pomocą interfejsu API danych YouTube. Jednak przed wdrożeniem online staram się uruchomić mój kod w środowisku offline (Wampserver, PHP 5.5.12, Apache 2.4.9). Używam następującego kodu:
require_once 'google-api-php-client-2.0.0-RC5/vendor/autoload.php';
$client = new Google_Client();
$client->setApplicationName("SRC_Thor");
$client->setDeveloperKey("xxxxxxxxxxx");
$youtube = new Google_Service_YouTube($client);
$channelResponse = $youtube->channels->listChannels('contentDetails', []);
var_dump($channelResponse);
Daje jednak następujący błąd:
[[3]}Fatal error: uncaught exception 'GuzzleHttp\Exception \ RequestException' with message ' curl error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html
)'
Próbowałem dodać najnowszą wersję cacert.pem
jak większość tematów NA więc oferują jako rozwiązanie, jednak bezskutecznie.
8 answers
Jeśli korzystasz z windows xampp. Kradnę lepszą odpowiedź z tutaj , byłoby pomocne, jeśli Google pokaże ci to pytanie 1st.
-
Pobierz i wyodrębnij dla cacert.pem here (a clean file format/data)
-
Wstawić:
C:\xampp\php\extras\ssl\cacert.pem
-
Dodaj tę linię do swojego php.ini
Curl.cainfo = " C:\xampp\php\extras\ssl\cacert.pem "
-
Uruchom ponownie serwer WWW / apache
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:45
Widząc, że używam lokalnego środowiska, mogę bezpiecznie wyłączyć SSL, co zrobiłem za pomocą następującego:
$guzzleClient = new \GuzzleHttp\Client(array( 'curl' => array( CURLOPT_SSL_VERIFYPEER => false, ), ));
$client->setHttpClient($guzzleClient);
Gdzie $client
jest moim Google_Client ().
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-01 08:25:26
$guzzleClient = new \GuzzleHttp\Client(['verify' => false]);
Wersja 6
Możesz odnieść się do dokumentów Guzzle na
Http://docs.guzzlephp.org/en/latest/request-options.html#verify
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-16 02:47:16
Pracuję z xamps nic z powyższych nie działało dla mnie
Próbowałem tego i zadziałało
- otwórz
vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php
I zmień to
$conf[CURLOPT_SSL_VERIFYHOST] = 2;
$conf[CURLOPT_SSL_VERIFYPEER] = true;
Do tego
$conf[CURLOPT_SSL_VERIFYHOST] = 0;
$conf[CURLOPT_SSL_VERIFYPEER] = FALSE;
Jest to rozwiązanie tymczasowe, jeśli zaktualizujesz ten plik, zmiany zostaną utracone
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-24 08:25:29
PCI-DSS 3.1 wymaga całego SSL tylko do TLS 1.2, więc wielu dostawców po prostu wyłącza wszystko oprócz TLS 1.2. Natrafiłem na tego typu problem, w którym CURL zauważył, że nie udało się obniżyć wersji uścisków dłoni jako nie udało się zweryfikować certyfikatu SSL. Spróbuj znaleźć, gdzie twój kod wykonuje wywołanie CURL i dodaj tę linię (pamiętaj, aby zastąpić $ch
dowolną klamką CURL używaną przez Twój kod)
curl_setopt($ch, CURLOPT_SSLVERSION, 6); // Force TLS 1.2
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-25 21:29:38
Jeśli chodzi o istotę rozwoju i testowania, masz dwie opcje szybkiej naprawy
- Użyj
$client = new GuzzleHttp\Client();
$request = $client->request('GET',$url, ['verify' => false]); //where $url is your http address
- follow @ Pham Huy Anh odpowiedź jest powyżej to zrób to
$client = new GuzzleHttp\Client();
$request = $client->request('GET',$url, ['verify' => 'C:\xampp\php\extras\ssl\cacert.pem']);
Mam nadzieję, że to komuś pomoże.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-11 11:48:31
U mnie też zadziałało ściągając cert z link https://gist.github.com/VersatilityWerks/5719158/download wtedy save it in C:\xampp\php\extras\ssl następnie Edytuj php.ini. Aby uzyskać Php.ini szybko zobacz poniższy rysunek wpisz tutaj opis obrazka
Następnie zatrzymaj się i ponownie uruchom apache. udało się !!!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-03 00:07:49
$guzzleClient = new \GuzzleHttp\Client(['verify' => false]);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-21 23:11:28