curl: (60) SSL-Zertifikat: Das lokale Ausstellerzertifikat kann nicht abgerufen werden
root@sclrdev:/home/sclr/certs/FreshCerts# curl --ftp-ssl --verbose ftp://{abc}/-u trup:trup --cacert /etc/ssl/certs/ca-certificates.crt
* About to connect() to {abc} port 21 (#0)
* Trying {abc}...
* Connected to {abc} ({abc}) port 21 (#0)
< 220-Cerberus FTP Server - Home Edition
< 220-This is the UNLICENSED Home Edition and may be used for home, personal use only
< 220-Welcome to Cerberus FTP Server
< 220 Created by Cerberus, LLC
> AUTH SSL
< 234 Authentication method accepted
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS alert, Server hello (2):
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: http://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.
InformationsquelleAutor der Frage user3812540 | 2014-07-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bezug auf "SSL certificate problem: unable to get local issuer certificate' - Fehler. Ziemlich offensichtlich gilt dies für das system sendet die CURL-Anfrage (und nicht der server, der die Anforderung empfängt)
1) Laden Sie die neueste cacert.pem aus https://curl.haxx.se/ca/cacert.pem
2) Fügen Sie die folgende Zeile in die php.ini (wenn das shared-hosting-und Sie haben keinen Zugang zu php.ini dann könnte man dies hinzufügen .Benutzer.ini in "public_html")
curl.cainfo="/path/to/downloaded/cacert.pem"
Stellen Sie sicher, schließen Sie den Pfad in doppelte Anführungszeichen!!!
3) standardmäßig wird der FastCGI-Prozess analysiert, neue Dateien, die alle 300 Sekunden (falls erforderlich, können Sie die Frequenz ändern, indem ein paar Dateien, wie hier vorgeschlagen https://ss88.uk/blog/fast-cgi-and-user-ini-files-the-new-htaccess/)
InformationsquelleAutor der Antwort Dahomz
Es nicht, da cURL nicht in der Lage ist, überprüfen Sie das Zertifikat vom server bereitgestellt werden.
Gibt es zwei Möglichkeiten, diese zu arbeiten:
Verwenden Sie cURL mit
-k
option, die erlaubt curl, um unsichere verbindungen, das ist cURL nicht das Zertifikat überprüfen.Fügen Sie der root-CA (der CA signieren des server-Zertifikats) zu
etc/ssl/certs/ca-certificates.crt
Sollten Sie verwenden Sie option 2, wie es die option, die dafür sorgt, dass Sie den Anschluss zu den sicheren FTP server.
InformationsquelleAutor der Antwort Yuvika
Ich habe dieses problem gelöst, durch hinzufügen einer Zeile code in cURL-Skript:
Warnung: das macht die Anfrage absolut unsicher (siehe Antwort von @YSU)!
InformationsquelleAutor der Antwort Vijay Bhandari
Hatte dieses problem nach der Installation von Git Extensions v3.48. Versucht zu installieren mysysgit aber wieder dasselbe problem. Am Ende, hatte zu deaktivieren (bitte berücksichtigen Sie Sicherheitsaspekte!) Git SSL-überprüfung mit:
aber wenn Sie ein domain-Zertifikat besser hinzufügen (Win7)
InformationsquelleAutor der Antwort Riga
In meinem Fall stellte sich heraus, dass ein problem mit der installation meines Zertifikats auf dem service, den ich versuchte zu konsumieren, mit cURL. Ich nicht um bundle/verketten Sie die intermediate und root-Zertifikate in mein domain-Zertifikat. Es war nicht offensichtlich, dass das war das problem, da Chrome arbeitete es aus und akzeptiert das Zertifikat trotz des Ausscheidens aus dem intermediate-und root-Zertifikate.
Nachdem die Bündelung der Bescheinigung, funktioniert alles wie erwartet. Ich gebündelt, wie dies
Und wiederholt sich für alle zwischen-und root-Zertifikat.
InformationsquelleAutor der Antwort Daniel Watrous
Liefen wir in diesen Fehler vor kurzem. Stellt sich heraus, es war in Bezug auf das root-cert nicht installiert wird, in dem CA store-Verzeichnis richtig. Ich war mit einem curl-Befehl, wo ich war, die Angabe der CA dir direkt.
curl --cacert /etc/test/server.pem --capath /etc/test ...
Dieser Befehl wurde nicht jedes mal mit curl: (60) SSL certificate problem: unable to get local issuer certificate.Nach der Verwendung
strace curl ...
es wurde festgestellt, dass curl wurde auf der Suche für das root-cert-Datei mit dem Namen 60ff2731.0, die auf einer openssl-hash-naming convetion. Also ich fand diesen Befehl, um effektiv den import der root-cert richtig:schafft ein Link
curl, unter der Decke Lesen Sie den server.pem cert, bestimmt den Namen des root-cert Datei (rootcert.pem), baute es zu seinem hash-Namen, dann hat ein OS-Datei-lookup, konnten ihn aber nicht finden.
So, das mitnehmen ist, verwenden strace beim ausführen von curl, wenn der curl Fehler ist unklar (war eine enorme Hilfe), und dann sicher sein, ordnungsgemäß zu installieren, die root-cert mit der openssl-Namenskonvention.
InformationsquelleAutor der Antwort gp-coder
Ist es wahrscheinlich eine fehlende cert vom server.
Root->Zwischen->Server
Einen server schicken Server & Fortgeschrittene als minimum.
Verwenden
openssl s_client -showcerts -starttls ftp -crlf -connect abc:21
Debuggen das Problem.Wenn nur ein cert zurückgegeben wird (entweder selbst-signiert oder ausgestellt), dann müssen Sie entweder:
curl -k
(sehr schlechte Idee)Wenn die server zurückgegeben, mehr als eine, aber nicht einschließlich eine selbst signierte (Wurzel -) Zertifikat:
Wenn der server lieferte eine root-CA-Zertifikat, dann ist es nicht in Ihrem CA-speichern, sind Ihre Optionen:
Habe ich ignoriert abgelaufen /aufgehoben certs, denn es gab keine Meldung. Aber Sie können überprüfen, dass die certs mit
openssl x509 -text
Gegeben Sie eine Verbindung zu einem home edition (https://www.cerberusftp.com/support/help/installing-a-certificate/) ftp-server, ich werde sagen, es ist signiert.
Bitte senden Sie mehr details, wie die Ausgabe von openssl.
InformationsquelleAutor der Antwort Jason Pyeron
Für mich, einfach zu installieren der Zertifikate geholfen:
InformationsquelleAutor der Antwort Maxim Krušina
Unter windows hatte ich dieses problem. Curl installiert wurde mysysgit, so das herunterladen und installieren der neuesten version behoben mein Problem.
Ansonsten diese sind anständige Anweisungen Anleitung zum update-CA-cert, die Sie könnten versuchen.
InformationsquelleAutor der Antwort Steve
Unter windows - wenn Sie ausführen von cmd
Download von cacert.pem aus
https://curl.haxx.se/docs/caextract.html
Set environment variable:
- und reload-Umgebung
Nun versuchen Sie es erneut
Grund für die Probleme:
https://laracasts.com/discuss/channels/general-discussion/curl-error-60-ssl-certificate-problem-unable-to-get-local-issuer-certificate/replies/95548
InformationsquelleAutor der Antwort RaSor
-k
Mann.cx/curl
InformationsquelleAutor der Antwort Geoffrey Hale
Ja benötigen Sie ein CA-Zertifikat auch. Hinzufügen eines code-snippet in Node.js für klare Sicht.
InformationsquelleAutor der Antwort Ravi Prakash
So weit, ich habe gesehen, dass dieses Problem geschieht innerhalb von Unternehmens-Netzwerken gibt es zwei Gründe, einen oder beide von denen geschieht, kann in Ihrem Fall:
Als eine Randnotiz, No. 2 oben können machen Sie fühlen sich unwohl über Ihre vermeintlich sicheren TLS-Datenverkehr gescannt. Das ist die corporate-Welt für Sie.
InformationsquelleAutor der Antwort rdguam
Meinem Fall war das anders. Ich bin eine Website hosten hinter einer firewall. Der Fehler wurde verursacht durch die pfSense.
Habe ich versehentlich fand die Ursache, Dank diese Antwort.
Alles ist gut, wenn ich zugegriffen meine Website von WAN.
Jedoch, wenn die Seite aufgerufen wurde, von innen LAN (z.B. bei WordPress gemacht
curl
Anfrage an den eigenen server, trotz, über die WAN-IP -49.x.x.x
), wurde es serviert die pfSense login-Seite.Identifizierte ich das Zertifikat als
pfSense webConfigurator Self-Signed Certificate
. Kein Wundercurl
warf einen Fehler.Ursache: Was geschah, war, dass
curl
war mit der site WAN-IP-Adresse49.x.x.x
. Aber, im Kontext der web-server die WAN-IP der firewall.Debug: ich festgestellt, dass ich immer die pfSense-Zertifikat.
Lösung: Auf der server-hosting der Website, zeigen Sie Ihre eigenen domain-Namen auf 127.0.0.1
Durch auftragen der Lösung,
curl
's Anfrage wurde korrekt verarbeitet der web-server, und nicht an der firewall, welche reagiert durch senden der login-Seite.InformationsquelleAutor der Antwort pandalion98
Speziell für
Windows
Benutzer, die mitcurl-7.57.0-win64-mingw
oder ähnliche version.Dies ist ein bisschen spät, und die vorhandenen Antworten sind richtig. Aber ich hatte trotzdem zu kämpfen, ein bisschen, um es Arbeit auf meinem Windows-Rechner, obwohl der Prozess ist eigentlich ziemlich straight-forward. So, Austausch der Schritt-für-Schritt-Prozess.
Dieser Fehler im Grunde bedeutet, dass curl nicht das Zertifikat überprüfen der Ziel-URI. Wenn Sie das Vertrauen der Aussteller des Zertifikats (CA), Sie können hinzufügen, dass zu der Liste der vertrauenswürdigen Zertifikate.
Dafür, durchsuchen Sie die URI (z.B. in Chrome) und befolgen Sie die Schritte
.cer
- Datei und kopieren Sie den Inhalt (einschließlich -----BEGIN CERTIFICATE - - - - -- - - - END CERTIFICATE-----)curl.exe
gespeichert wird, z.B.C:\SomeFolder\curl-7.57.0-win64-mingw\bin
curl-ca-bundle.crt
- Datei mit einem text-editorNun Ihr Befehl ausgeführt werden soll fein in Schwung.
InformationsquelleAutor der Antwort Arghya C
Einfache Lösung:
IN
~/.sdkman/etc/config
ändernsdkman_insecure_ssl=true
Schritte aus:
nano
~/.sdkman/etc/config
ändern
sdkman_insecure_ssl=false
zusdkman_insecure_ssl=true
speichern und beenden
InformationsquelleAutor der Antwort biniam_Ethiopia