Beim Zugriff auf Github über HTTPS wird folgende Fehlermeldung angezeigt:
error: server certificate verification failed.
CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
Das liegt daran, dass ich keine Zertifikate habe /etc/ssl/certs/
. Ich weiß, wie ich dieses Problem beheben kann. Ich kann das Paket ca-certificates
aus dem Debian-Repository installieren . Das Problem ist jedoch, dass dadurch alle Zertifikate (Tausende) installiert werden, die ich nicht unbedingt akzeptieren / vertrauen möchte.
Wie kann ich ein Zertifikat nur für Github installieren?
ein Unterproblem / eine Unterfrage
Auf einem anderen Computer, auf dem das Paket ca-certificates
bereits installiert ist und git funktioniert, ist mir aufgefallen, dass einige Zertifikate /etc/ssl/certs/
ein Zertifikat pro Datei und andere mehrere Zertifikate in einer Datei enthalten. Die bestimmte Datei mit dem Github-Zertifikat /etc/ssl/certs/ca-certificates.crt
enthält über 150 weitere Zertifikate:
$ grep 'BEGIN CERTIFICATE' /etc/ssl/certs/ca-certificates.crt | wc -l
159
Wie kann ich herausfinden, welches dieser 159 Zertifikate das richtige ist? (Mit Ausnahme von Brute Force - Aufteilen der Feile in zwei Hälften und Überprüfen beider Hälften, Wiederholen while n > 1
).
quelle
Antworten:
Um auf Ihren Github zuzugreifen, müssen Sie dies über ssh tun. Sie müssen also Ihren öffentlichen ssh-Schlüssel zu github hinzufügen. Danach können Sie über ssh auf github zugreifen, dh:
Siehe auch: Github: ssh-Schlüssel generieren , WikiHow
[Bearbeiten # 1]
ohne Zertifikatsprüfung:
oder authentifiziert
Für mich ist immer noch nicht klar, wonach Sie fragen, weil Sie wissen, dass die Installation von CA-Zertifikaten das Problem beheben wird.
[Bearbeiten # 2]
Ok, die andere Frage war
Öffnen Sie Ihren Browser und navigieren Sie zu https://github.com/ . Klicken Sie auf den grünen Namen links von
https://
und klicken Sie aufCertificates
. Auf derDetails
Registerkarte sehen Sie die Zertifikatskette:Exportieren Sie jedes DigiCert-Zertifikat in eine Datei.
/etc/ssl/certs/
c_rehash
die Katze alle Zertifikate laufenca-certificates.crt
Wie gesagt, ich bin kein Freund von solchen Aktionen, da Github die CAs jederzeit ändern kann, was immer zu zusätzlicher Arbeit führt.
quelle
github
per zugreifenhttps
.Wie bereits erwähnt, können Sie SSH-Schlüssel verwenden, anstatt sich auf HTTPS zu verlassen, um dieses Problem zu vermeiden, und möglicherweise eine bessere Sicherheit genießen.
Ich denke, Sie suchen nach einer Möglichkeit, Stammzertifikate / CA in / etc / ssl / certs zu installieren. Kurz gesagt, es reicht nicht aus, die PEM-codierte Datei einfach in / etc / ssl / certs zu speichern. Sie müssen auch den Hash dieses Zertifikats berechnen und einen Symlink in / etc / ssl / certs zu diesem Zertifikat erstellen Datei. Der Name des Symlinks muss das Hash-Suffix .0 sein, oder, wenn eine Hash-Kollision vorliegt, .1 und so weiter.
Hier finden Sie eine detaillierte Beschreibung sowie ein Beispielskript, mit dem Sie den Prozess automatisieren können: http://wiki.openwrt.org/doc/howto/wget-ssl-certs#adding.root.certificates
Hoffe, das ist, wonach Sie gesucht haben, aber wie ich bereits sagte, sind SSH-Schlüssel wahrscheinlich die "bessere" Lösung. :)
quelle
c_rehash
macht das, was du erklärt hast. Siehec_rehash
Manpage. Übrigens: Die Hashes müssen nicht berechnet werden. Das Catting der Zertifikate nach ca-certificates.crt ist ausreichend, dagit
nur diese Datei gelesen wird. Außerdem wurde unter dem Link erklärt, wie die Zertifikate manuell mit openssl abgerufen werden können. Dies ist sehr zweifelhaft und provoziert einen Mann im mittleren Angriff. Ich würde es nicht empfehlen.