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 git push
bekomme ich beim Laufen :
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 .crt
funktioniert die Antwort für 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 git
Befehl vollständig deaktivieren und Zertifikate ignorieren, wie in der Antwort hier angegeben? Außerdem möchte ich nicht, dass die Webseite geladen wird. Ich habe Firefox dafür eingerichtet. Ich möchte, dass der git push
Befehl 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 es herausgefunden git config --global http.sslverify false
. Aber ich würde gerne eine Antwort auf alles sehen, nicht nur einen Trottel-Hack
quelle
.crt
. Ich brauche.cer
Antworten:
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:
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.
quelle
/usr/local/share/ca-certificates/
. Sehen Sieman update-ca-certificates
, was davon spricht, dass es eine Whitelist gibt,/usr/share/ca-certificates/
aber wie implizit alles im/usr/local/share/ca-certificates/
Verzeichnis als vertrauenswürdig eingestuft wird ./usr/local/share/ca-certificates
ich dafür verwenden,sudo dpkg-reconfigure ca-certificates
um die CA abzuholen.Das
ca-certificates
Paket enthält die folgenden AnweisungenREADME.Debian
:Beachten Sie, dass es hier ein Verzeichnis gibt, das sich von den anderen Antworten unterscheidet:
Nach dem Kopieren in können
/usr/local/share/ca-certificates/
Sie dann die Berechtigungen des Zertifikats aktualisieren und ausführen,sudo update-ca-certificates
wie in Telegraphers answer angegeben. Sie werden in der Ausgabe sehen, dass das Zertifikat hinzugefügt wurde.quelle
Die Erweiterungen .crt, .pem und .cer sind austauschbar. Ändern Sie einfach die Dateinamenerweiterung. Sie haben die gleiche Form. Versuche dies:
quelle
openssl(1)
diese Option , um das Zertifikat in das PEM-Format zu konvertieren. Laufen:$ openssl -in mycert.cer -inform DER -out mycert.pem -outform PEM
openssl x509 -inform DER -in certificate.cer -out certificate.pem
Ich verwende die folgende Zusammenstellung früherer Antworten:
Es kann so modifiziert werden, dass es einzeilig ist.
Oft sind beide
site.example.com
undexample.com
dieselben Hostnamen.quelle
Ich habe alle Lösungen gelesen und so gelöst;
quelle
Ich hatte ein ähnliches Problem, bei dem die Installation des Zertifikats in Firefox und Google Chrome funktionierte, aber die Aktualisierung im 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.Währenddessen
sudo dpkg-reconfigure ca-certificates
konnte ich das erforderliche Zertifikat nicht finden. Das Problem bei mir ist, dass ich das Zertifikat am falschen Ort kopiert habe.Anstatt es bei zu kopieren, habe
$/usr/share/ca-certificates
ich es bei zu kopieren.$/usr/local/share/ca-certificates
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
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.
quelle
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.Zur Verwendung
git
über http (s) müssen Sie Ihren öffentlichen Schlüssel in Ihren Profileinstellungen auf GitHub registrieren .Mehr Infos hier . Ändere dein GitHub-Profil hier .
Versuche dies:
… Funktioniert ohne zusätzliches Zertifikat.
quelle