SSL-Zertifikatproblem: selbstsigniertes Zertifikat in der Zertifikatskette

SSL-Zertifikatproblem: selbstsigniertes Zertifikat in der Zertifikatskette

Hinter einer Firewall kann ich mit Chrome wie folgt auf ein GitHub-Repository zugreifen: https://github.com/Squirrel/Squirrel.Windows

Chrome verwendet für diesen Zugriff unser Zertifikat. Wenn ich versuche, auf dieselbe URL zuzugreifen mitGitErweiterungen, erhalte ich diesen Fehler:

SSL-Zertifikatproblem: selbstsigniertes Zertifikat in der Zertifikatskette

Kann ich GitExtensions veranlassen, unser Zertifikat zu verwenden, um den Zugriff zu gewähren?

EDIT: weitere Infos:

Auf meinem Rechner sehe ich mysysGit nicht, aber ich sehe mingw/curl, also gehe ich davon aus, dass Git diese verwendet. Diese verwenden beim Erstellen der Zertifikatskette anscheinend keine Windows-Vertrauenszertifikate. Der Fehler, den ich bekomme, SSL-Zertifikatproblem: selbstsigniertes Zertifikat in der Zertifikatskette, zeigt an, dass das von Git/Github verwendete Stammzertifikat nicht im integrierten Stammpaket der Zertifizierungsstelle (CA) vorhanden ist. Wie @Akber Choudhry betont hat, ist das CA-Zertifikat, das die Wurzel der Kette der vom Github-SSL-Server bereitgestellten Zertifikate darstellt, DigiCert High Assurance EV Stammzertifizierungsstelleund ich sehe diese CA in C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt.

Um zu überprüfen, ob das Problem bei Git und nicht bei GitExtensions liegt, habe ich Folgendes in der Befehlszeile getan:

 >>git clone https://github.com/Squirrel/Squirrel.Windows.git

Und ich habe den gleichen Fehler bezüglich des SSL-Zertifikats erhalten.

Es scheint, als würde Git dieses Zertifikat nicht verwenden, daher habe ich versucht, Git folgendermaßen zu konfigurieren:

>>git config --system http.sslcainfo "C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt"

aber das hatte keine Wirkung..

Antwort1

Hinter einer Firewall verwendet ...github ... Chrome für diesen Zugriff unser Zertifikat.

Basierend auf dieser Beschreibung gehe ich davon aus, dass „unser“ Zertifikat nicht das Originalzertifikat für Github ist, sondern dass Sie eine Firewall mit SSL-Prüfung verwenden, die ein eigenes („unser“) Zertifikat für einen Man-in-the-Middle-Server für die Verbindung generiert. Die Zertifizierungsstelle in der Firewall, die dieses Zertifikat ausgestellt hat (Proxy-Zertifizierungsstelle), ist wahrscheinlich dem Windows Trust Store hinzugefügt und Chrome wird ihr vertrauen.

Git verwendet jedoch nicht den Windows Trust Store und kennt daher diese Proxy-CA nicht. Daher müssen Sie die von der Firewall verwendete Proxy-CA zum CA-Speicher für Git hinzufügen und nicht die ursprüngliche CA, die das Zertifikat für Github ausgestellt hat.

Antwort2

Wenn Sie Chrome verwenden und über HTTPS auf Github zugreifen, überprüfen Sie lediglich die Zertifikatskette von Github anhand der integrierten Stammzertifikate in Ihrem Browser und in Windows.

Im Hintergrund verwendet Gitextensions msysgit, das beim Erstellen der Zertifikatskette keine Windows-Vertrauenszertifikate konsultiert.

Aus dem Fehler geht hervor, dass das von Github verwendete Stammzertifikat nicht im integrierten Stammpaket der Zertifizierungsstelle (CA) vorhanden ist. Dies kann einfach daran liegen, dass Gitextensions eine ältere Version von msysgit oder curl bündelt.

msysgit enthält es DigiCert High Assurance EV Root CAin seinem CA-Bundle und es ist dort seit einigen Jahren vorhanden. Suchen Sie nach dieser Zeichenfolge in der Dateibin/curl-ca-bundle.crt

Überprüfen Sie, ob auf Ihrem Computer eine ältere Version der Tools msysgit oder mingw installiert ist. Wenn ja, bereinigen Sie sie und installieren Sie sie erneut. Lesen Sie abschließend das Verfahren zum Hinzufügen von msysgit-Zertifikaten, wenn Sie das Zertifikat hinzufügen müssen.

verwandte Informationen