2014-10-27 5 views
7

Wenn mit git auf Cygwin holen Sie bekommen:Wie ein Enterprise Certificate Authority (CA) hinzuzufügen, auf Cygwin git (und einigen Linux-Distributionen)

Fetching origin 
fatal: unable to access 'https://.../...git': SSL certificate problem: self signed certificate in certificate chain 
error: Could not fetch origin 

Das Zertifikat wurde /etc/ssl/certs/ca-bundle.crt hinzugefügt und other bundle files, sondern auf Beim nächsten Cygwin-Update trat das Problem erneut auf.

Antwort

10

git-remote-https die folgenden Dateien für CA-Zertifikate lesen:

/etc/ssl/certs/ca-bundle.crt 
/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt 

Wenn Sie diese Dateien bearbeiten, werden sie jedes Mal, wenn der Cygwin-Setup ausgeführt wird, überschrieben werden, und es ist ein Update für das ca-certificates Paket.

Die richtige/die richtige Lösung ist, um das Zertifikat zu dem Pick-up-Verzeichnis hinzuzufügen und den Pickup-Skript ausführen, aktualisieren-ca-Vertrauen:

curl -sL http://ca.pdinc.us > /etc/pki/ca-trust/source/anchors/ca.pdinc.us.pem \ 
&& update-ca-trust 

Die Post-Installationsskript für das CA-Zertifikate Paket wird automatisch Führen Sie das Update-CA-Trust-Skript bei jedem Upgrade erneut aus. Weitere Informationen:

man update-ca-trust 
+0

Was soll der 'curl -sL' Befehl tun? Es ist HTTP-URL, also nicht klar die Zertifikatskette, wie es aus dem Kontext erwartet werden würde. –

+0

In der aktuellen Version liest 'git-remote-https' Zertifikate aus'/mingw64/ssl/certs/ca-bundle.crt', denn so ist es in '/ c/ProgramData/Git/config' konfiguriert. Weder "/ mingw64/bin/update-ca-trust" noch "/ usr/bin/update-ca-trust" aktualisieren diese Datei, so dass das Skript nicht nützlich ist. Ich habe noch nicht gefunden, was es ist. –

+0

@Janhudec Mit dem heutigen Update und seit 2014 scheint das nicht der Fall zu sein. Was git - Version (git Version 2.8.3) und uname -a (CYGWIN_NT-6.1-WOW black7 2.6.1 (0.305/5/3) 2016-12-16 11:50 i686 Cygwin) bist du eingeschaltet? –