2014-10-27 38 views
7

Quando il recupero con git su Cygwin si ottiene:Come aggiungere un'autorità di certificazione aziendale (CA) a git su Cygwin (e alcune distribuzioni Linux)

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

Il certificato è stato aggiunto al /etc/ssl/certs/ca-bundle.crt e other bundle files, ma su il prossimo aggiornamento di Cygwin il problema è riapparso.

risposta

10

git-remote-https leggerà i seguenti file per certificati CA:

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

Se si modificano questi file, essi verranno sovrascritti ogni volta che l'installazione Cygwin è gestito e non v'è un aggiornamento per il pacchetto ca-certificates.

La soluzione corretta/adeguata è quella di aggiungere il certificato alla directory raccogliere ed eseguire lo script pick-up, aggiornare-ca-fiducia:

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

Il post script di installazione per il pacchetto ca-certificates verrà automaticamente rieseguire lo script update-ca-trust ad ogni aggiornamento. Per ulteriori informazioni:

man update-ca-trust 
+0

Cosa si deve fare il comando 'curl -sL'? Si tratta di un URL http, quindi chiaramente non si ottiene la catena di certificati come ci si aspetterebbe dal contesto. –

+0

Nella versione corrente, 'git-remote-https' legge i certificati da'/mingw64/ssl/certs/ca-bundle.crt', perché è così che è configurato in '/ c/ProgramData/Git/config'. Né '/ mingw64/bin/update-ca-trust' né'/usr/bin/update-ca-trust' aggiornano quel file, quindi lo script non è utile. Non ho ancora trovato quello che è ancora. –

+0

@JanHudec A partire dall'aggiornamento di oggi, e dal 2014 non sembra essere il caso. Cosa git --version (git versione 2.8.3) e uname -a (CYGWIN_NT-6.1-WOW black7 2.6.1 (0.305/5/3) 2016-12-16 11:50 i686 Cygwin) sei attivo? –