it-swarm.com.de

github: Die Überprüfung des Serverzertifikats ist fehlgeschlagen

Ich habe gerade ein Github-Konto und ein Repository darin erstellt, aber beim Versuch, eine lokale Arbeitskopie mit der empfohlenen URL via zu erstellen

git clone https://github.com/<user>/<project>.git

Ich bekomme einen Fehler wie

fatal: Zugriff auf ' https://github.com/<user>/<project>.git ' nicht möglich: Serverzertifikatprüfung fehlgeschlagen. CAfile: /home/<user>/.ssl/trusted.pem CRL-Datei: keine

Ich bin bei Debian Jessie und ich hätte erwartet, dass sowohl Debian als auch GitHub eine Auswahl von allgemein akzeptierten CAs bereitstellen/vertrauen würden, aber offenbar vertraut mein System dem GibHub-Zertifikat nicht.

Gibt es eine einfache Möglichkeit, das Problem zu beheben (ohne den häufig empfohlenen "GIT_SSL_NO_VERIFY = true" - Hack und ähnliche Problemlösungen)?

BEARBEITEN:

Zusätzliche Information:

  • Das ca-certificate-Paket ist installiert.
  • Die von @VonC vorgeschlagenen Zertifikate von cacert.org als Wurden nicht geändert.
  • Meine persönliche Datei ~/.ssl/trusted.pem enthält einige Einträge, aber um ehrlich zu sein, erinnere ich mich nicht, woher die hinzugefügten Zertifikate kamen ...
  • Beim Entfernen von ~/.ssl/trusted.pem ändert sich die Fehlermeldung zu git

    fatal: unable to access 'https://github.com/tcrass/scans2jpg.git/': Problem with the SSL CA cert (path? access rights?)
    

BEARBEITEN:

@ VonCs Rat bezüglich der https.sslCAinfo-Option von git brachte mich auf den richtigen Weg. Ich habe gerade die heruntergeladenen cacert.org-CAs zu meinem trusted.pem hinzugefügt, und jetzt beschwert sich git nicht mehr.

12
Torsten Crass

Stellen Sie zunächst sicher, dass Sie Zertifikate auf Ihrem Debian in /etc/ssl/certs installiert haben.

Wenn nicht, installieren Sie sie neu:

Sudo apt-get install --reinstall ca-certificates

Da dieses Paket keine root -Zertifikate enthält, fügen Sie Folgendes hinzu:

Sudo mkdir /usr/local/share/ca-certificates/cacert.org
Sudo wget -P /usr/local/share/ca-certificates/cacert.org http://www.cacert.org/certs/root.crt http://www.cacert.org/certs/class3.crt
Sudo update-ca-certificates

Stellen Sie sicher, dass Ihr Git diese CA referenziert:

git config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt

Jason C erwähnt eine andere mögliche Ursache ( in den Kommentaren ):

Es war die Uhr. Der NTP -Server war inaktiv, die Systemuhr war nicht richtig eingestellt, ich habe es anfangs nicht bemerkt oder gedacht, und die falsche Zeit hat dazu geführt, dass die Überprüfung fehlschlug. 

Zertifikate sind zeitabhängig .

34
VonC

Sie können die SSL-Überprüfung auch deaktivieren (wenn für das Projekt kein hoher Sicherheitsstandard als Login/Passwort erforderlich ist), indem Sie Folgendes eingeben: 

git config --global http.sslverify false

genieße git :)

34
mkebri

Es kann sich auch um ein selbstsigniertes Zertifikat usw. handeln. Das globale Deaktivieren der SSL-Verifizierung ist nicht sicher. Sie können das Zertifikat installieren, damit es für das System sichtbar ist. Das Zertifikat sollte jedoch vollkommen korrekt sein. 

Oder Sie können mit einem einzigen Konfigurationsparameter klonen, der Befehl lautet also:

git clone -c http.sslverify=false https://myserver/<user>/<project>.git;

GIT speichert den Wert false, Sie können ihn in der <project>/.git/config-Datei überprüfen.

8
dmatej

Versuchen Sie, eine Verbindung mit dem Repository mit der URL herzustellen: http://github.com/<user>/<project>.git (http akzeptiert https)

In Ihrem Fall sollten Sie so klonen: 

git clone http://github.com/<user>/<project>.git