2015-05-14 4 views
10

Ich verwende Socialite in Laravel 5, um facebook login einzurichten. Ich folgte den Anweisungen sorgfältig, bis ich mit dem folgenden Fehler stecken gebliebenLaravel 5 Socialite - cURL Fehler 77: Fehler beim Setzen des Zertifikats Standorte überprüfen

cURL error 60: SSL certificate problem: unable to get local issuer certificate 

, damit ich die this Antwort gefunden, es zu beheben, die in der Tat vergangen, aber dann bekam ich diesen Fehler

cURL error 77: error setting certificate verify locations: 
CAfile: /Applications/XAMPP/xamppfiles/cacert.pem 
CApath: none 

Irgendwelche Ideen, was ist die Ursache von diesem Fehler ?! und wie man es repariert ?!

+0

Verwenden Sie ein echtes SSL-Zertifikat oder ein selbst zertifiziertes Zertifikat? Existiert die Datei /Applications/XAMPP/xamppfiles/cacert.pem? – detheridge02

+0

@ detheridge02 Ich habe die Datei wie in der Antwort angefügt heruntergeladen, so ist es die im Pfad/Anwendungen/Xampp/xamppfiles – omarsafwany

+0

Sie müssen einen absoluten Pfad nicht einen relativen Pfad setzen –

Antwort

23

Ich steckte auch auf dieses Problem. Es stellte sich heraus, dass der Pfad zu meinem Zertifikat in meiner php.ini-Datei falsch eingestellt war. Die Erweiterung .txt wurde vergessen.

Was ich hatte:

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

Was habe ich es zu:

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

Hoffnung, das hilft.

+0

Funktioniert immer noch nicht. Meine Datei heißt nur "cacert.pem" keine ".txt" Erweiterung. – omarsafwany

+0

@omarsafwany, möglicherweise wurde Ihre Dateierweiterung auf ausgeblendet gesetzt. Das Zertifikat ist im Grunde eine Textdatei, daher sollte die Erweiterung .txt zusammen mit dem absoluten Pfad hinzugefügt werden. Starten Sie auch Ihren Apache-Server neu, damit diese Änderungen wirksam werden. –

+0

+ möglicherweise versuchen, .pem-Datei im Ordner 'bin/php/version-X.X/ext' zu verschieben. – star18bit

1

Ich las jeden Thread, den ich finden konnte, und dieser lieferte das fehlende Stück.

Hintergrund: Ich habe dieses Problem versucht, Drupal 8 zu bekommen, um nach verfügbaren Updates auf einer neuen Entwicklungsumgebung zu suchen (wamp basiert).

  1. Holen Sie sich eine Kopie der Zertifikatsdaten von Mozilla, kann es hier zu finden: https://curl.haxx.se/ca/cacert.pem Wenn Sie mehr darüber wissen wollen, was das diese Zeilen lesen ist: https://serverfault.com/questions/241046/what-is-the-cacert-pem-and-for-what-to-use-that
  2. Speichern Sie die Datei als " cacert.pem.txt "nicht als" cacert.pem " Dies war das fehlende Stück, danke LyleK !. Ich habe keine Ahnung warum, aber Sie müssen die TXT-Erweiterung am Ende haben oder es funktioniert nicht.
  3. hinzufügen Explizit den Pfad zu dem Ort der "cacert.pem.txt" Datei php.ini

Beispiel:

[curl] 
; A default value for the CURLOPT_CAINFO option. This is required to be an 
; absolute path. 
curl.cainfo = "C:\wamp\custom\cacert.pem.txt" 

Wenn Sie einen wamp Stapel verwenden starte es neu. Sie sollten gut gehen.

-2

Wenn es mit git verbunden ist
git config --global http.sslverify "false" wird das Problem lösen

+6

Da diese Antwort abgelehnt wurde, ist die Deaktivierung von SSL niemals eine gute Lösung. –

5
  1. speichern Zertifikat (https://curl.haxx.se/ca/cacert.pem) als cacert.pem.txt in C:\xampp\php
  2. In den php.ini:

    curl.cainfo = "C:\xampp\php\cacert.pem.txt" 
    
  3. Vergessen Sie nicht, XAMPP neu zu starten (es gewann t arbeiten, bis es neu startet)

Dann funktioniert es gut!

0

Ich hatte das gleiche Problem und ich habe versucht jede Lösung hier und auf anderen Posts aber keiner von ihnen funktioniert. Ich habe versucht,
1) Rahmen richtigen Dateirechte (nicht funktioniert)
2) Ändern der Dateierweiterung (nicht funktioniert)


dann zog ich die cacert.pem Datei in php/Verzeichnis in XAMPP und neu gestartet, es funktionierte. Hoffe es hilft jemandem.

1

Zuerst müssen Sie Ihre "curl.cainfo" -Datei herunterladen, dann müssen Sie sie zu C: \ xampp \ php \ cacert.pem.txt finden.

Zweitens müssen Sie Ihre Datei php.ini in Xampp öffnen und diese =>

curl.cainfo = C kopieren: \ xampp \ php \ cacert.pem.txt wo immer Sie wollen .

Drittens bitte starten Sie Ihren Apache Server aktualisieren Sie Ihre Localhost Seite und das sollte gut funktionieren.

1

Kasse doppelte Anführungszeichen auf php.ini: , wenn Sie aus dem Web kopiert und Vergangenheit vielleicht hast du falsch doppelte Anführungszeichen:

„C: \ xampp \ php \ cacert.pem.txt“

anstelle von

"C: \ xampp \ php \ cacert.pem.txt"

1

dies funktionierte für mich

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

hoffen, dass es jemand hilft :)

+0

Wenn dieser Code die Frage beantwortet, denken Sie darüber nach, etwas Text hinzuzufügen, der den Code in Ihrer Antwort erklärt. Auf diese Weise erhalten Sie mit höherer Wahrscheinlichkeit mehr Upvotes - und helfen dem Fragesteller, etwas Neues zu lernen. – lmo

2

Sie müssen das vorhandene Zertifikat mit dem anderen here ersetzen. dass nach:

  • Extract, und fügen Sie xampp\php\ext
  • öffnen xampp\php\php.ini
  • Fügen Sie diese Zeile curl.cainfo='location from the first step' bis zum Ende der Datei.
  • Neustart und es sollte jetzt funktionieren.

Dies ist die source Verbindung.

9

hinzufügen cacert.pem Datei von https://curl.haxx.se/ca/cacert.pem in c: \ xampp \ php \ cacert.pem

Einstellung ändern in der php.ini-Datei:

curl.cainfo = „C: \ xampp \ php \ cacert.pem

0

ich hatte das gleiche Problem. Sie die Datei .pem oder pem.txt mit einem einfachen Editor (bloc-note) und vorbei an den (https://curl.haxx.se/ca/cacert.pem) in der Datei zu öffnen haben. Sie muss Apache neu laden

1

Wenn jemand Windows mit Plesk ausführt und sie diesen Fehler erhalten.

Sie müssen sicherstellen, dass der curl.cainfo-Pfad innerhalb des Plesk-PHP-Verzeichnisses liegt. Andernfalls wird der obige Fehler auch bei der Korrektur angezeigt.

curl.cainfo = "C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP55\extras\ssl\cacert.pem.txt" 

Für mich behoben. Hoffe das hilft jemandem, irgendwann, irgendwo.

+0

Und wenn Sie Plesk in einem freigegebenen Host ohne Zugriff auf das PHP-Verzeichnis verwenden, können Sie nur die Curl-Option CURLOPT_CAINFO direkt vor jeder Verwendung festlegen. –

0

Ich habe versucht @ Mahesh-Singh-Chouhan, @omarsafwany, @ Lylek Lösungen. aber wiederhole denselben Fehler.

Danach, aktualisiere ich php.ini ohne doppelte Anführungszeichen & mit .pem Erweiterung & ich gelingen Ergebnis mit folgenden Code zu erhalten gewünscht wird.

curl.cainfo=E:\Xampp-5.6.3\php\ext\cacert.pem 

Ich habe auch Screenshot beigefügt.

Bitte zuerst versuchen, über die Benutzer Vorschläge, wenn fehlgeschlagen auch diese verwenden.

Dank für Lösungen Es schafft für mich Weg @ mahesh-singh-Chouhan, @omarsafwany, @LyleK [! [Image description hier] [1] eingeben] [1]

[1]: https://i.stack.imgur.com/3Pgkp.jpg 
1

Für Fenster

hatte ich gleiche Problem, nachdem ich php auf Fenster aktualisiert 2008. Plötzlich sind alle meine php Codes aufgehört zu arbeiten. Was ich getan habe, habe ich php.ini dann fand ich eine Linie

;curl.cainfo =

und i geändert

curl.cainfo = "C:\Program Files (x86)\PHP\v7.0\cacert.pem"(erinnern zu entfernen, bevor curl.cainfo)

und alles lief normal. Was Sie brauchen, ist eine Cert-Datei herunterladen cert.pem und platzieren Sie sie irgendwo auf Ihrem Server und ändern Sie die Zeile wie ich in php.ini