it-swarm.com.de

So installieren Sie Zertifikate für die Befehlszeile

In der Schule müssen wir also ein Zertifikat installieren, um auf https-Sites zugreifen zu können. In Firefox kann ich das Zertifikat importieren. Mit der Kommandozeile kann ich das jedoch nicht. Zum Beispiel, wenn ich git Push starte, bekomme ich:

fatal: unable to access 'https://github.com/user/repo': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

Wie importiere ich ein Zertifikat, um dieses zu entfernen? Der Import muss sich für mich authentifizieren können. Es ist auch eine .cer -Datei, daher funktioniert die Antwort für .crt nicht. Außerdem möchte ich keine Schritte zum Einrichten von Git, wie ich es bereits habe. Ich möchte wissen, ob das möglich ist. Oder kann ich einfach die Authentifizierung mit dem Befehl git vollständig deaktivieren und dafür sorgen, dass Zertifikate wie das, was die Antwort hier sagt, ignoriert werden? Außerdem möchte ich nicht, dass die Webseite geladen wird. Ich habe Firefox dafür eingerichtet. Ich möchte, dass der Befehl git Push die Standardausgabe wie folgt ausgibt:

[master 630d087] message
 1 file changed, 93 insertions(+), 80 deletions(-)
 rewrite somefile (84%)
Counting objects: 9, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 978 bytes | 0 bytes/s, done.
Total 5 (delta 2), reused 0 (delta 0)
To https://github.com/User/Repo.git
   851ae39..630d087  master -> master

Hinweis: Ich habe den git config --global http.sslverify false herausgefunden. Aber ich würde gerne eine Antwort auf alles sehen, nicht nur einen Trottel-Hack

65

TL; DR

Damit alles funktioniert und nicht nur Ihr Browser, müssen Sie dieses CA-Zertifikat zum vertrauenswürdigen CA-Repository des Systems hinzufügen.

In Ubuntu:

  • Gehe zu/usr/local/share/ca-certificates /
  • Erstellen Sie einen neuen Ordner, d. H. "Sudo mkdir school"
  • Kopieren Sie die CRT-Datei in den Schulordner
  • Stellen Sie sicher, dass die Berechtigungen in Ordnung sind (755 für den Ordner, 644 für die Datei)
  • Führen Sie "Sudo update-ca-certificates" aus

Warum

Lassen Sie mich auch erklären, was los ist, damit die anderen Poster sehen, warum sie kein Zertifikat benötigen, um Github über HTTPS zu verwenden.

Was dort vor sich geht, ist, dass Ihre Schule die gesamte SSL-Kommunikation abfängt, wahrscheinlich, um sie zu überwachen.

Um das zu tun, ist das, was sie tun, im Wesentlichen ein "Mann in der Mitte" -Angriff, und aus diesem Grund beklagt sich Ihr Browser zu Recht, dass er das Zertifikat von github nicht verifizieren kann. Ihr Schulvertreter nimmt das Github-Zertifikat entgegen und stellt stattdessen ein eigenes Zertifikat zur Verfügung.

Wenn Ihr Browser versucht, das von der Schule bereitgestellte Zertifikat anhand der Zertifizierungsstelle zu überprüfen, die das Zertifikat von github signiert hat, schlägt dies zu Recht fehl.

Damit die SSL-Verbindung in der Schule funktioniert, müssen Sie diesen "MITM" -Angriff bewusst akzeptieren. Und Sie tun dies, indem Sie das CA-Zertifikat der Schule als vertrauenswürdiges Zertifikat hinzufügen.

Wenn Sie dieser Schulzertifizierungsstelle vertrauen, funktioniert Ihre Überprüfung des Zertifikats für gefälschte Githubs, da das Zertifikat für gefälschte Githubs von der Schulzertifizierungsstelle überprüft wird.

Beachten Sie, dass die SSL-Verbindung nicht mehr sicher ist, da Ihr Schuladministrator alle Ihre verschlüsselten Verbindungen abfangen kann.

100
Telegrapher

Das ca-certificates -Paket enthält die Anweisungen in seinem README.Debian:

Wenn Sie lokale Zertifizierungsstellen installieren möchten, die implizit vertrauenswürdig sind, fügen Sie die Zertifikatdateien als einzelne Dateien mit der Endung .crt in /usr/local/share/ca-certificates/ ein und führen Sie update-ca-certificates erneut aus.

Beachten Sie, dass es hier ein Verzeichnis gibt, das sich von den anderen Antworten unterscheidet:

/usr/local/share/ca-certificates/

Nach dem Kopieren in /usr/local/share/ca-certificates/ können Sie die Berechtigungen des Zertifikats aktualisieren und Sudo update-ca-certificates ausführen, wie in der Antwort von Telegraphers angegeben. Sie werden in der Ausgabe sehen, dass das Zertifikat hinzugefügt wurde.

39
Robert Siemer

Die Erweiterungen .crt, .pem und .cer sind austauschbar. Ändern Sie einfach die Dateinamenerweiterung. Sie haben die gleiche Form. Versuche dies:

$ Sudo cp mycert.cer /usr/share/ca-certificates/mycert.pem
$ Sudo dpkg-reconfigure ca-certificates
$ Sudo update-ca-certificates
$ git config --global http.sslCAInfo /usr/share/ca-certificates/mycert.pem
15
Mike

Ich verwende die folgende Zusammenstellung früherer Antworten:

Sudo -i
echo | openssl s_client -showcerts -servername site.example.com -connect example.com:443 2>/dev/null | awk '/-----BEGIN CERTIFICATE-----/, /-----END CERTIFICATE-----/' >> /usr/local/share/ca-certificates/ca-certificates.crt 
update-ca-certificates

Es kann so modifiziert werden, dass es einzeilig ist.

Oft sind sowohl site.example.com als auch example.com dieselben Hostnamen.

5
Orient

Ich habe alle Lösungen gelesen und so gelöst;

Sudo openssl x509 -inform DER -in certificate.cer -out certificate.crt

Sudo mv certificate.crt /usr/share/ca-certificate/

cd /usr/share/ca-certificate

Sudo chmod 644 certificate.crt

Sudo dpkg-reconfigure ca-certificates

Sudo update-ca-certificates
2
Kadir Y.

Ich hatte ein ähnliches Problem, bei dem die Installation des Zertifikats in Firefox und Google chrome funktionierte, aber die Aktualisierung in Terminal Sudo apt-get update nicht funktionierte und 403 Forbidden IP-Fehler verursachte. Ich hatte auch eine sample.cer-Datei. Im Grunde muss ich es also zuerst in .crt konvertieren.

Sudo openssl x509 -inform DER -in sample.cer -out sample.crt

Während ich Sudo dpkg-reconfigure ca-certificates ausführte, konnte ich das erforderliche Zertifikat nicht finden. Das Problem bei mir ist, dass ich das Zertifikat am falschen Ort kopiert habe.

Anstatt es bei $/usr/share/ca-certificates zu kopieren, habe ich es bei $/usr/local/share/ca-certificates kopiert. Aber indem ich es an der richtigen Stelle platzierte, löste sich mein Problem. Ich kann die Pakete aber immer noch nicht aktualisieren oder neue Pakete installieren.

Schnellreparatur (für mich am):

Verwendung von FTP anstelle von http

Sudo sed -i s/http/ftp/ /etc/apt/sources.list && apt-get update

und obiger Befehl funktionierte. Bitte kopieren Sie die Datei sources.list, bevor Sie die Änderungen vornehmen.

Wenn irgendetwas nicht klar oder nicht richtig ist, bitte korrigieren Sie mich.

1
Gopal Sharma

Für den Zugriff auf eine Website mit https benötigen Sie unabhängig davon, ob Sie einen CLI- oder GUI-Browser verwenden, kein Schulzertifikat.

Um git über http (s) zu verwenden, müssen Sie Ihren öffentlichen Schlüssel in Ihren Profileinstellungen auf GitHub registrieren.

Mehr Infos hier . Ändere dein GitHub-Profil hier .


Versuche dies:

Sudo apt-get install w3m
w3m https://github.com/

… Funktioniert ohne zusätzliches Zertifikat.

0
A.B.