github: Überprüfung des Serverzertifikats fehlgeschlagen
Lesezeit: 7 Minuten
Torsten Krass
Ich habe gerade ein Github-Konto und ein darin enthaltenes Repository erstellt, aber beim Versuch, eine lokale Arbeitskopie mit der empfohlenen URL über zu erstellen
git clone https://github.com/<user>/<project>.git
Ich bekomme einen Fehler wie
fatal: Zugriff nicht möglich ‘https://github.com//.git‘: Überprüfung des Serverzertifikats fehlgeschlagen. CA-Datei: /home//.ssl/trusted.pem CRL-Datei: keine
Ich bin auf Debian Jessie und hätte erwartet, dass sowohl Debian als auch GitHub eine Auswahl allgemein akzeptierter Zertifizierungsstellen bereitstellen / sich darauf verlassen, aber anscheinend vertraut mein System dem Zertifikat von GibHub nicht.
Gibt es eine einfache Möglichkeit, dies zu beheben (ohne den häufig empfohlenen „GIT_SSL_NO_VERIFY=true“-Hack und ähnliche Problemumgehungen)?
BEARBEITEN:
Zusätzliche Information:
Das ca-certificate-Paket wird installiert.
Die Installation der Zertifikate von cacert.org, wie von @VonC vorgeschlagen, hat nichts geändert.
Meine persönliche ~/.ssl/trusted.pem-Datei enthält zwar ein paar Einträge, aber um ehrlich zu sein, weiß ich nicht mehr, woher die hinzugefügten Zertifikate kamen …
Beim Entfernen von ~/.ssl/trusted.pem ändert sich die Git-Fehlermeldung zu
fatal: unable to access 'https://github.com/tcrass/scans2jpg.git/': Problem with the SSL CA cert (path? access rights?)
BEARBEITEN:
Der Rat von @VonC bezüglich der Option git https.sslCAinfo hat mich auf den richtigen Weg gebracht – ich habe gerade die heruntergeladenen CAs von cacert.org zu meiner trusted.pem hinzugefügt, und jetzt beschwert sich git nicht mehr.
Was ist in der erwähnten CA-Datei? Vielleicht findet Ihr SSL die CA-Zertifikate nicht? Hast du sie installiert?
– Reaktormönch
5. März 2016 um 23:45 Uhr
Ich habe die Antwort bearbeitet, um sicherzustellen, dass Git auf diese ca verweist.
– VonC
6. März 2016 um 8:43 Uhr
In meinem Fall war das Problem einfach ein falsches Datum.
– GChuf
9. Mai 2020 um 17:51 Uhr
mkebri
Sie können die SSL-Überprüfung auch deaktivieren (wenn das Projekt keine andere hohe Sicherheitsstufe als Login/Passwort erfordert), indem Sie Folgendes eingeben:
git config --global http.sslverify false
genieße git 🙂
Es ist keine Verpflichtung, nur eine (sehr starke) Empfehlung. Bei SSL-Zertifikaten geht es um die Ende-zu-Ende-Verschlüsselung zwischen Ihnen und a bekannt Endpunkt. Das Deaktivieren des SSL-Zertifikats setzt Sie einem MiM-Angriff aus (en.wikipedia.org/wiki/Man-in-the-middle_attack)
– VonC
9. März 2017 um 12:03 Uhr
Das Problem bei dieser Art von Kurzantwort (und vielen anderen, die ich in den letzten über 8 Jahren gesehen habe) ist das völlige Fehlen von Kontext oder Empfehlung: Man könnte sie schnell kopieren und einfügen, ohne die Konsequenzen zu verstehen.
Das stimmt, aber in einem anderen Kontext, in dem derselbe Benutzer mit mehreren Computern (Heimcomputer, Bürocomputer … jedem Computer) an demselben Projekt arbeitet, wird das Spielen mit dem Zertifikat für alles verbindlich, wenn das Hauptziel nicht darin besteht, ein zu vermeiden Eindringen, weil sich das System entwickelt … und darauf wollen wir uns konzentrieren (Git akzeptiert nur ein Zertifikat / Projekt, Sie müssen jedes Mal, wenn Sie die Maschine wechseln, um ein Zertifikat zu generieren und die Einstellung des Projekts zu aktualisieren!!)
– mkebri
9. März 2017 um 12:12 Uhr
Meinen Tag gerettet Alter.
– Srikanth J
15. Mai 2021 um 3:19 Uhr
VonC
Stellen Sie zunächst sicher, dass Sie Zertifikate auf Ihrem Debian installiert haben in /etc/ssl/certs.
Jason C erwähnt eine weitere mögliche Ursache (in den Kommentaren):
Es war die Uhr. Der NTP-Server war ausgefallen, die Systemuhr war nicht richtig eingestellt, ich habe es anfangs nicht bemerkt oder daran gedacht, nachzusehen, und die falsche Zeit führte dazu, dass die Überprüfung fehlschlug.
Zertifikate sind zeitkritisch.
Ich bekomme auch die gleichen Meldungen. Speziell meins sagt fatal: Zugriff auf ‘url/’ nicht möglich: Überprüfung des Serverzertifikats fehlgeschlagen. CA-Datei: /etc/ssl/certs/ca-certificates.crt CRL-Datei: keine. Ich verwende git über ssh. Würde das einen Unterschied machen?
– Codierter Behälter
9. August 2016 um 14:09 Uhr
@CodedContainer Ja, das tut es: Die CAs (Certificate Authorities) validieren öffentliche Schlüssel für TLS-Zertifikate (unter Verwendung von https). ssCAinfo hat keine Bedeutung für die ssh-URL. Sind Sie sicher, dass Ihre Remote-URL dies tut? nicht mit https anfangen?
– VonC
9. August 2016 um 14:31 Uhr
Hm. Ich habe heute plötzlich diesen Fehler bekommen, nur auf einem Gerät (einem Raspberry Pi), das seit dem letzten Mal, als es funktionierte, nicht mehr berührt wurde. Ich habe alle Schritte in dieser Antwort durchlaufen und einige neue Zertifikate abgerufen, aber ich erhalte immer noch denselben Fehler (die Git-URL beginnt mit https und befindet sich auf gitlab.com). Irgendwelche anderen Ideen?
– Jason C
6. März 2017 um 1:35 Uhr
@JasonC Ist die Git-Version auf diesen Raspberry Pi-Boxen dieselbe?
– VonC
6. März 2017 um 5:24 Uhr
@VonC Ich habe es herausgefunden. Es war die Uhr. Der NTP-Server war ausgefallen, die Systemuhr war nicht richtig eingestellt, ich habe es anfangs nicht bemerkt oder daran gedacht, nachzusehen, und die falsche Zeit führte dazu, dass die Überprüfung fehlschlug. Das war es nach einer Menge anderer gescheiterter Versuche.
– Jason C
6. März 2017 um 6:28 Uhr
dmatej
Es kann auch ein selbstsigniertes Zertifikat usw. sein. Das globale Deaktivieren der SSL-Überprüfung ist unsicher. Sie können das Zertifikat so installieren, dass es für das System sichtbar ist, aber das Zertifikat sollte vollkommen korrekt sein.
Oder Sie können mit einem Konfigurationsparameter klonen, sodass der Befehl lautet:
GIT merkt sich den falschen Wert, Sie können ihn in der überprüfen <project>/.git/config Datei.
Erinnert sich Git an diese Einstellung nur für das Projekt oder für den globalen Kontext?
– Atrujillofalke
24. April 2018 um 12:58 Uhr
Nur für das Projekt.
– dmatej
25. April 2018 um 15:50 Uhr
Ich hatte auch diesen Fehler, als ich versuchte, ein Repository von Github auf einem Windows-Subsystem von der Linux-Konsole zu klonen:
schwerwiegend: Zugriff auf „http://github.com/docker/getting-started.git/“ nicht möglich: Überprüfung des Serverzertifikats fehlgeschlagen. CA-Datei: /etc/ssl/certs/ca-certificates.crt CRL-Datei: keine
Die Lösung von @VonC in diesem Thread hat bei mir nicht funktioniert.
openssl s_client -showcerts -servername github.com -connect github.com:443 </dev/null 2>/dev/null | sed -n -e '/BEGIN\ CERTIFICATE/,/END\ CERTIFICATE/ p' > github-com.pem
cat github-com.pem | sudo tee -a /etc/ssl/certs/ca-certificates.crt
Wazime
Ich hatte ein ähnliches Problem und bekam die Fehlermeldung:
fatal: unable to access XXXX server certificate verification failed. CAfile: none CRLfile: none
Es passierte plötzlich, als ich versucht hatte, eine Verbindung zu meinem regulären (FUNKTIONIERENDEN!) Gitlab-Server, SSL erstellt mit letsencrypt, von Git unter WSL2 Ubuntu herzustellen.
Es gab keine Probleme beim Zugriff auf den Server über den Browser, die SSL-Kette schien in Ordnung zu sein, wenn mit Tools wie überprüft wurde https://www.sslshopper.com/ssl-checker.html
Sie müssen Ihre CA-Zertifikate aktualisieren.
sudo apt update
sudo apt upgrade
sudo apt-get install --reinstall ca-certificates
sudo update-ca-certificates
# now it should work perfectly
git pull
Die folgende Änderung hat mir geholfen, das Problem in AWS Codepipeline zu lösen sudo apt update -y sudo apt upgrade -y sudo apt-get install --reinstall ca-certificates sudo update-ca-certificates --fresh -v
– Chen
5. Oktober 2021 um 8:12 Uhr
Alles, was ich zu brauchen schien, war sudo apt update und sudo apt-get install --reinstall ca-certificates Danke! (ubuntu 18.04 wsl)
– Rogerpack
16. Oktober 2021 um 4:32 Uhr
Nguyễn Minh Vũ
Eine andere mögliche Ursache ist, dass die Uhr Ihres Computers nicht synchronisiert ist (z. B. auf Raspberry Pi). Überprüfen Sie das aktuelle Datum/die aktuelle Uhrzeit mit:
$ date
Wenn das Datum und/oder die Uhrzeit falsch sind, versuchen Sie die Aktualisierung mit:
$ sudo ntpdate -u time.nist.gov
Die folgende Änderung hat mir geholfen, das Problem in AWS Codepipeline zu lösen sudo apt update -y sudo apt upgrade -y sudo apt-get install --reinstall ca-certificates sudo update-ca-certificates --fresh -v
– Chen
5. Oktober 2021 um 8:12 Uhr
Alles, was ich zu brauchen schien, war sudo apt update und sudo apt-get install --reinstall ca-certificates Danke! (ubuntu 18.04 wsl)
– Rogerpack
16. Oktober 2021 um 4:32 Uhr
Rechenschaft
Für mich ein einfaches
sudo apt-get update
hat das Problem gelöst. Es war ein Uhrproblem und mit diesem Befehl wird es auf das aktuelle Datum/die aktuelle Uhrzeit zurückgesetzt und alles hat funktioniert
8693400cookie-checkgithub: Überprüfung des Serverzertifikats fehlgeschlagenyes
Was ist in der erwähnten CA-Datei? Vielleicht findet Ihr SSL die CA-Zertifikate nicht? Hast du sie installiert?
– Reaktormönch
5. März 2016 um 23:45 Uhr
Ich habe die Antwort bearbeitet, um sicherzustellen, dass Git auf diese ca verweist.
– VonC
6. März 2016 um 8:43 Uhr
In meinem Fall war das Problem einfach ein falsches Datum.
– GChuf
9. Mai 2020 um 17:51 Uhr