Beim Versuch, eine PHP-Umgebung unter Windows (mit Wamp) für die Verwendung des Amazon PHP SDK einzurichten, wird beim Versuch, einen Beispieltest auszuführen, die folgende Fehlermeldung angezeigt:
Fatal error: Uncaught exception 'cURL_Exception' with message 'cURL resource: Resource id #10; cURL error: SSL certificate problem: unable to get local issuer certificate (cURL error code 60). See http://curl.haxx.se/libcurl/c/libcurl-errors.html for an explanation of error codes.' in C:\wamp\www\AWSSDKforPHP\lib\requestcore\requestcore.class.php on line 848
Ich habe meiner php.ini bereits die folgende Zeile hinzugefügt
curl.cainfo = C:\Windows\ca-bundle.crt
Dies ist der Speicherort eines Zertifikats, das ich mit diesem VBS-Skript VBS-Script erstellt habe
Ich habe auch meinen WAMP-Dienst neu gestartet.
curl_setopt($rest, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
kommt das ins Spiel.Antworten:
Verwenden Sie dieses Zertifikat-Stammzertifikat-Bundle:
https://curl.haxx.se/ca/cacert.pem
Kopieren Sie dieses Zertifikatspaket auf Ihre Festplatte. Und benutze dies auf
php.ini
quelle
curl_setopt($ch, CURLOPT_CAINFO, ini_get('curl.cainfo'));
und in der php.ini[cURL] curl.cainfo = C:\dev\xampp\php\cacert.pem
. Die Datei ist da, aber ich erhalte immer noch den Fehler 60. Fehlt mir etwas?php.ini
: Eine für PHP-CLI zweite für PHP-Web (Apache, Nginx, ...). Sie müssencurl.cainfo = "path_to_cert\cacert.pem"
für Web eins einstellen . Auf der anderen Seite, wenn Sie sehen könnencurl.cainfo
, dass in Ihrer PHP-Info-Ansicht wahr ist, kann es zu diesem Zeitpunkt zu einem Berechtigungsproblem kommen.curl.cainfo
in meinen PHP-Infos nichts sehen . Bedeutet dies, dass ich den Wert in die falsche Datei eingefügt habe?Ich habe dies behoben, indem ich die
php.ini
Datei unter geändert habeC:\wamp\bin\apache\apache2.4.9\bin\
Zuerst habe ich versucht, durch Ändern der
php.ini
Datei beiC:\wamp\bin\php\php5.5.12\
und es hat nicht funktioniert.Ich hoffe, dies hilft jemandem, der nach dem Recht
php.ini
auf Änderung suchtquelle
Hier erfahren Sie genau, welche php.ini-Datei geladen wird, sodass Sie wissen, welche Sie ändern müssen. Ich habe viel Zeit damit verschwendet, die falsche php.ini-Datei zu ändern, weil ich WAMP und XAMPP installiert hatte.
Vergessen Sie auch nicht, den WAMP-Server (oder was auch immer Sie verwenden) nach dem Ändern von php.ini neu zu starten.
quelle
@Overflowh Ich habe die obige Antwort auch ohne Glück versucht. Ich habe die PHP-Version von 5.3.24 auf 5.5.8 geändert, da diese Einstellung nur in PHP 5.3.7 und höher funktioniert. Ich fand dann diese http://flwebsites.biz/posts/how-fix-curl-error-60-ssl-issue Ich habe die cacert.pem von dort heruntergeladen und die ersetzt, die ich von curl.hxxx.se heruntergeladen / erstellt hatte oben verlinkt und alles begann zu funktionieren. Ich habe versucht, Paypal Sandbox IPN zu überprüfen. Ich bin froh zu sagen, dass nach dem .pem-Tausch alles in Ordnung ist, wenn die Einstellung curl.cainfo in php.ini verwendet wird, die noch nicht in 5.3.24 enthalten war.
quelle
@ Hüseyin BABAL
Ich erhalte eine Fehlermeldung mit dem obigen Zertifikat, aber ich versuche dieses Zertifikat und seine Funktionsweise.
https://gist.github.com/VersatilityWerks/5719158/download
quelle
Zuerst müssen wir dieses Zertifikat-Stammzertifikat-Bundle herunterladen:
https://curl.haxx.se/ca/cacert.pem
Verschieben Sie diese Datei an einen Ort wie den PHP-Ordner im Wamp / Xampp-Ordner.
Dann bearbeiten Sie Ihre "php.ini":
curl.cainfo = "C: /path/to/your/cacert.pem"
und
openssl.cafile = "C: /path/to/your/cacert.pem"
WICHTIG:
Stellen Sie sicher, dass Sie die Datei "php.ini" direkt in Ihrem Fenster-Explorer öffnen. (in meinem Fall: "C: \ DevPrograms \ wamp64 \ bin \ php \ php5.6.25 \ php.ini").
Verwenden Sie nicht die Verknüpfung zu "php.ini" im Menü des Wamp / Xampp-Symbols in der Taskleiste. Diese Verknüpfung funktionierte in einigen Fällen nicht.
Nach dem Speichern von "php.ini" müssen Sie im Wamp-Symbol nicht "Alle Dienste neu starten" oder CMD schließen / erneut öffnen.
Versuchen Sie es mit "var_dump (openssl_get_cert_locations ());" und sehen Sie sich die Zeile an: ["ini_cafile"] => string (40) "C: /path/to/your/cacert.pem"
Getan.
quelle
Problem behoben, laden Sie https://curl.haxx.se/ca/cacert.pem herunter, setzen Sie es "irgendwo" und fügen Sie diese Zeile ein
php.ini
:PS: Ich habe diesen Fehler erhalten, als ich versucht habe, das Modul mit xampp auf Drupal zu installieren.
quelle
Die einfachste Lösung für das Problem besteht darin, den folgenden Befehl in das Feld einzufügen.
Wenn Sie dies verwenden, müssen Sie kein Zertifikat oder etwas hinzufügen.
quelle
Fügen Sie das Folgende zu php.ini hinzu [verwenden Sie '/' anstelle von '\' im Pfad] curl.cainfo = "path / cacert.pem"
XAMPP neu gestartet. Es hat gut funktioniert für mich. Vielen Dank
quelle
Wenn cacert.pem von den obigen Links nicht funktioniert, versuchen Sie es mit diesem
https://gist.github.com/VersatilityWerks/5719158/download
quelle
Zuerst müssen Sie das Zertifikat von diesem Link herunterladen
https://curl.haxx.se/ca/cacert.pem
und platzieren Sie es an einem Ort, an dem Sie möchten. Der Name der herunterladbaren Datei lautet: cacert.pem In meinem Fall werde ich es also unter C: \ wamp64 \ bin \ php \ cacert.pem ablegen
Dann müssen Sie den Speicherort der Datei php.ini angeben
Zum Beispiel verwende ich PHP 7. Die Datei php.ini befindet sich unter: C: \ wamp64 \ bin \ php \ php7.0.10 \ php.ini
Greifen Sie also auf diese Datei zu und deaktivieren Sie diese Zeile: openssl.cafile
Aktualisieren Sie es auch so, dass es wie folgt aussieht openssl.cafile = "C: \ wamp64 \ bin \ php \ cacert.pem"
Starten Sie schließlich Ihren Apache-Server neu und das ist alles
quelle
WICHTIG : Nach 4 Stunden arbeiten Sie mit Laravel 5.7 und PHP 7. + und führen / verwenden Sie PHP Artison Serve auf Localhost, um eine Verbindung mit Mailgun herzustellen.
WICHTIG, um das Problem zu beheben. Funktionieren Sie nicht mit der IP- Adresse http://127.0.0.1:8000. Verwenden Sie localhost oder legen Sie den Domänennamen anhand der Hostdatei fest
OK ,
quelle
Die Lösung besteht darin, die Datei php.ini zu bearbeiten, die sich in Ihrer PHP-Version befindet (für mich ist es PHP7.0.10), nicht die PHP.ini von Apache. Sie finden eine kommentierte Datei wie diese; curl.cainfo Ändern Sie einfach diese Zeile wie folgt curl.cainfo = "C: \ permCertificate \ cacert.pem"
Vergessen Sie nicht, das Verzeichnis "permCertificate" zu erstellen und die Datei "cacert.pem" darin zu kopieren.
quelle
Nur damit Sie wissen, was für mich funktioniert hat, hat die Datei unter https://curl.haxx.se/ca/cacert .... jedoch nicht funktioniert, die im Zip-Ordner im Beitrag unter ( http: // flwebsites) .biz / posts / how-fix-curl-error-60-ssl-problem ) funktionierte für mich ohne Probleme.
Kopieren Sie, wie bereits erwähnt, die Zertifikatdatei an einen Speicherort auf Ihrer Festplatte und aktualisieren Sie die Zeile
in Ihrer php.ini Datei zu lesen
Starten Sie Ihren Apache-Server neu.
quelle