Certificato SSL rifiutato nel tentativo di accedere a GitHub su HTTPS dietro il firewall


390

Sono bloccato dietro un firewall, quindi devo usare HTTPS per accedere al mio repository GitHub. Sto usando Cygwin 1.7.7 su Windows XP.

Ho provato a impostare il telecomando su https://username@github.com/username/ExcelANT.git, ma premendo viene richiesta una password, ma una volta immesso non fa nulla. https://username:<password>github.com/username/ExcelANT.gite clonare il repository vuoto da zero ma ogni volta mi dà lo stesso errore

errore: problema certificato SSL, verificare che il certificato CA sia OK. Dettagli:
errore: 14090086: routine SSL: SSL3_GET_SERVER_CERTIFICATE: verifica del certificato non riuscita durante l'accesso a https://github.com/username/ExcelANT.git/info/refs

L'accensione GIT_CURL_VERBOSE=1mi dà

* Per connettersi () alla porta 443 di github.com (# 0)
* Provare 207.97.227.239 ... * impostare correttamente le posizioni di verifica del certificato:
* CAfile: none
CApath: / usr / ssl / certs
* Problema del certificato SSL, verificare che il certificato CA è OK. Dettagli:
errore: 14090086: routine SSL: SSL3_GET_SERVER_CERTIFICATE: verifica certificato non riuscita
* Scadenza cancellata
* Chiusura connessione # 0
* Informazioni su connessione () alla porta 443 di github.com (# 0)
* Prova 207.97.227.239 ... * impostazione corretta del certificato verifica posizioni:
* File CA: nessuno
Percorso CA: / usr / ssl / certs
* Problema al certificato SSL, verificare che il certificato CA sia OK. Dettagli:
errore: 14090086: routine SSL: SSL3_GET_SERVER_CERTIFICATE: verifica certificato non riuscita
* Scadenza cancellata
*
Errore di connessione n. 0 in chiusura : problema certificato SSL, verificare che il certificato CA sia OK. Dettagli:
errore: 14090086: routine SSL: SSL3_GET_SERVER_CERTIFICATE: verifica del certificato non riuscita durante l'accesso a https://github.com/username/ExcelANT.git/info/refs

fatal: HTTP request failed

È un problema con il mio firewall, Cygwin o cosa?

Non avevo impostato il proxy HTTP nella configurazione di Git, tuttavia è un server ISA che necessita dell'autenticazione NTLM, non di base, quindi a meno che qualcuno non sappia forzare git a usare NTLM, sono scappato.


Se imposto http.sslVerify false, la connessione sarà sicura? ed è un buon percorso da usare? Nel mezzo stiamo usando il firewall pfsense. in questo momento, il file .gitconfig sul profilo utente è vuoto.
Nullpointer

Risposte:


57

Sentiti libero di saltare questa risposta se vuoi risolvere il problema dei certificati. Questa risposta si occupa del tunneling di ssh attraverso il firewall che è IMHO una soluzione migliore per affrontare le cose firewall / proxy.

Esiste un modo migliore dell'utilizzo dell'accesso http e quello di utilizzare il servizio ssh offerto da github sulla porta 443 del server ssh.github.com.

Usiamo uno strumento chiamato cavatappi. Questo è disponibile sia per CygWin (attraverso l'installazione dalla homepage di Cygwin) sia per Linux usando il tuo strumento di packaging preferito. Per MacOSX è disponibile da macports e produce almeno.

La riga di comando è la seguente:

$ corkscrew <proxyhost> <proxyport> <targethost> <targetport> <authfile>

Proxyhost e proxyport sono le coordinate del proxy https. Targethost e targetport è la posizione dell'host verso cui tunnelizzare. Il file di autenticazione è un file di testo con 1 riga contenente il nome utente / la password del server proxy separati da due punti

per esempio:

abc:very_secret

Installazione per l'utilizzo del protocollo "normale" ssh per la comunicazione git

Aggiungendo questo a ~/.ssh/configquesto trucco può essere utilizzato per le normali connessioni ssh.

Host github.com
  HostName ssh.github.com
  Port 443
  User git
  ProxyCommand corkscrew <proxyhost> <proxyport> %h %p ~/.ssh/proxy_auth

ora puoi testarlo funziona ssh-ing su gitproxy

pti@pti-laptop:~$ ssh github.com
PTY allocation request failed on channel 0
Hi ptillemans! You've successfully authenticated, but GitHub does not provide shell access.
       Connection to github.com closed.
pti@pti-laptop:~$

(Nota: se non hai mai effettuato l'accesso a github prima, ssh ti chiederà di aggiungere la chiave del server al file hosts noto. Se sei paranoico, si consiglia di verificare l'impronta digitale RSA su quella mostrata sul sito github dove caricato la chiave).

Una leggera variante di questo metodo è il caso in cui è necessario accedere a un repository con un'altra chiave, ad esempio per separare il proprio account privato dal proprio account professionale.

# 
# account dedicated for the ACME private github account 
#
Host acme.github.com
  User git
  HostName ssh.github.com
  Port 443
  ProxyCommand corkscrew <proxyhost> <3128> %h %p ~/.ssh/proxy_auth
  IdentityFile ~/.ssh/id_dsa_acme

godere!

Lo usiamo da anni ormai su Linux, Mac e Windows.

Se vuoi puoi leggere di più a riguardo in questo post del blog


Ho rinunciato a farlo funzionare, ma ho dato un'altra occhiata e l'ho fatto funzionare. cambiando .ssh / config in> Host ssh.github.com >User oharab >Hostname ssh.github.com >Port 443 >PreferredAuthentications publickey >IdentityFile ~/.ssh/id_rsa e clonando usando git clone è git@ssh.github.com:oharab/log4vba.gitriuscito a farlo funzionare in pochissimo tempo.
Oharab,

1
Sto solo effettuando il downvoting perché la risposta di seguito è più utile, ma sfortunatamente stackoverflow mette sempre in cima la risposta accettata, anche se era solo una risposta per una singola circostanza.
mjaggard,

1
In ogni caso ho aggiornato la risposta poiché trovo che il tunneling SSL attraverso il proxy https sia ancora una soluzione migliore che armeggiare con i certificati HTTPS o disabilitarli e finire con una soluzione che è ancora meno performante, facile da usare E meno sicura. Bene, molti voti mi dimostrano che ho torto, ma mi attengo comunque alla mia opinione in merito.
Peter Tillemans,

523

Il problema è che non hai alcun certificato dell'autorità di certificazione installato sul tuo sistema. E questi certificati non possono essere installati con setup.exe di cygwin.

Aggiornamento: installa il pacchetto Net / ca-certificati in cygwin (grazie a dirkjot)

Esistono due soluzioni:

  1. Installa i certificati di root. Ragazzi Curl hanno estratto per voi certificati da Mozilla .

    cacert.pemil file è quello che stai cercando. Questo file contiene> 250 certificati CA (non so come fidarmi di questo numero di ppl). Devi scaricare questo file, dividerlo in singoli certificati, metterli in / usr / ssl / certs (il tuo percorso CA) e indicizzarli.

    Ecco come farlo. Con cygwin setup.exe install curl e openssl pacchetti eseguono:

    $ cd /usr/ssl/certs
    $ curl http://curl.haxx.se/ca/cacert.pem |
      awk '{print > "cert" (1+n) ".pem"} /-----END CERTIFICATE-----/ {n++}'
    $ c_rehash

    Importante : per poter utilizzare c_rehashdevi installare openssl-perlanche.

  2. Ignora la verifica del certificato SSL.

    ATTENZIONE: la disabilitazione della verifica del certificato SSL ha implicazioni per la sicurezza. Senza la verifica dell'autenticità delle connessioni SSL / HTTPS, un utente malintenzionato malintenzionato può impersonare un endpoint attendibile (come GitHub o qualche altro host Git remoto) e sarai vulnerabile a un attacco man-in-the-middle . Assicurati di aver compreso appieno i problemi di sicurezza e il tuo modello di minaccia prima di utilizzare questo come soluzione.

    $ env GIT_SSL_NO_VERIFY=true git clone https://github...
    

9
Non è necessario installare l'arricciatura, basta usare wget:wget -O - http://curl.haxx.se/ca/cacert.pem | awk 'split_after==1{n++;split_a fter=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
Deebster

38
So che questo è Cygwin, ma nel caso in cui qualcuno arrivi qui usando Centos, è / etc / pki / tls / certs dove dovrebbe andare il .pem.
Smetti di diffamare Monica Cellio il

2
Non ha funzionato per me - tuttavia, non ho c_rehash nel mio percorso. Ho provato a riavviare la mia shell. Ho anche dovuto mkdir -p / usr / ssl / certs. Mi chiedo se la mia installazione di Cygwin è diversa o manca qualcosa? Inoltre, l'impostazione di GIT_SSL_NO_VERIFY = true seguita dall'esecuzione dell'operazione clone ha comportato questo errore: fatal: https://code.google.com/.../info/refs not found: did you run git update-server-info on the server?Forse funzionerà dopo il riavvio?
Jeff Axelrod,

7
Questa risposta è sbagliata Basta installare il ca-certificatespacchetto cygwin per ottenere i certificati radice mancanti. Perché questa risposta ha ottenuto così tanti miglioramenti?
rurban,

32
Non disattivare la verifica del certificato SSL. Ciò accade troppo spesso negli strumenti e nel codice dell'applicazione in tutto il settore. Ti apre a un uomo nel mezzo dell'attacco. Se hai intenzione di utilizzare SSL, utilizzalo correttamente.
Tim

430

Nota: la disabilitazione della verifica SSL ha implicazioni per la sicurezza . Consente agli attacchi Man in the Middle quando si utilizza Git per trasferire dati su una rete. Assicurati di aver compreso appieno le implicazioni di sicurezza prima di utilizzare questo come soluzione. O meglio ancora, installa i certificati di root.

Un modo è disabilitare la verifica SSL CERT:

git config --global http.sslVerify false

Ciò impedirà a CURL di verificare la certificazione HTTPS.

Solo per un repository:

git config http.sslVerify false

17
Se non si desidera modificare le impostazioni globali (ad es. Tutti i repository), escludere --global
Erin,

57
potresti per favore aggiungere una nota su quanto sia estremamente pericoloso?
Cronologico

26
questa è un'idea terribile. c'è un motivo per cui i certificati devono essere verificati. se non verifichi il certificato come attendibile, il certificato potrebbe essere generato da chiunque e potresti essere suscettibile a un uomo nell'attacco intermedio.
Mark Carey,

24
Non disattivare la verifica SSL!
Tim

14
Per tutte le persone "non farlo": questo non è affatto l'approccio più sicuro. MA, è l'opzione molto migliore che non avere affatto SSL! Perché alcune persone eseguono solo i loro server git semplici privati, va bene per loro. Certo, per qualsiasi vera sicurezza è l'impostazione NO GO. La cosa più insicura è l'invio di byte semplici attraverso la rete.
Peter Stegnar,

109

Volevo che Git usasse il pacchetto di certificati aggiornato senza sostituire quello utilizzato dal mio intero sistema. Ecco come fare in modo che Git usi un file specifico nella mia home directory:

mkdir ~/certs
curl http://curl.haxx.se/ca/cacert.pem -o ~/certs/cacert.pem

Ora aggiorna .gitconfigper usarlo per la verifica tra pari:

[http]
sslCAinfo = /home/radium/certs/cacert.pem

Nota sto usando un percorso assoluto. Git non fa alcuna espansione del percorso qui, quindi non puoi usarlo ~senza un brutto kludge. In alternativa, puoi saltare il file di configurazione e impostare il percorso tramite la variabile d'ambiente GIT_SSL_CAINFO.

Per risolvere questo problema, impostare GIT_CURL_VERBOSE=1. Il percorso del file CA utilizzato da Git verrà mostrato nelle righe che iniziano con "CAfile:" nell'output.


12
Per me, questa è la risposta migliore: funziona su unix (NetBSD in realtà), influenza solo git e non qualsiasi altra cosa sul sistema e non richiede l'accesso root / amministratore. Grazie!
Eric

1
Perfetto, si può anche fare di meglio. Ho sostituito il mio vecchio /etc/ssl/certs/ca-certificates.crtsul mio Ubuntu 8.04 LTS con questo file e ha funzionato magicamente!
Michael-O,

1
@Eric grazie per aver menzionato NetBSD poiché significa che ho trovato questa risposta. NetBSD è un po 'strano. Ho installato il pacchetto OpenSSL, ma anche questo non ti dà la certs, solo una directory segnaposto.
atomici

+200 Più fantastico, ha funzionato anche sulla mia scatola Ubuntu. Non è necessario disabilitare il controllo dei certificati in git, basta fare questa soluzione rapida.
Colin D Bennett,

11
Risposta eccellente, puoi saltare la modifica manuale del file ~ / .gitconfig con il seguente comando:git config --global http.sslCAinfo "$HOME/certs/cacert.pem"
Aron Ahmadia,

41

Nota che per farlo funzionare (installazione RVM su CentOS 5.6), ho dovuto eseguire quanto segue:

export GIT_SSL_NO_VERIFY=true

e dopo, la procedura di installazione standard per arricciare l'installer RVM in bash ha funzionato a meraviglia :)


13
stesso effetto di git config --global http.sslverify false
Dyno Fu

20
Questo è ESTREMAMENTE PERICOLOSO! Il punto centrale della verifica del certificato SSL è proteggere il codice da eventuali manomissioni durante la trasmissione su HTTPS! Disabilitarlo significa che le persone maligne possono inserire vulnerabilità e altre cose cattive nel tuo codice mentre lo spingi e lo recuperi!

Se imposto http.sslVerify false, la connessione sarà sicura? ed è un buon percorso da usare? Nel mezzo stiamo usando il firewall
pfsense

@Ravi la connessione sarà tecnicamente il lavoro, sì, ma è inequivocabilmente non è una buona idea. Se sia l'origine git che la macchina locale sono interne e sotto il controllo della tua organizzazione, potrebbe essere passabile , ma secondo il commento dell'utente 456814, la disabilitazione della verifica ti apre agli attacchi MITM.
Doktor J,

40

Una soluzione molto semplice: sostituire https: // con git: //

Usa git: //the.repository invece di https: //the.repository e funzionerà.

Ho avuto questo problema su Windows con TortoiseGit e questo l'ha risolto.


Immagino che funzioni perché non verifica SSL per git://. Come indicato in questa risposta sopra , disabilitare la verifica SSL è un rischio per la sicurezza.
danijar,

5
@danijar il motivo per cui funziona è perché non usa nemmeno SSL . Il git://protocollo utilizza SSH, che utilizza coppie di chiavi pubbliche e private SSH per l'autenticazione e la crittografia, anziché un certificato SSL.

11
@Cupcake git://fa non usare SSH. Vedi il protocollo SSH e il protocollo Git .
nyuszika7h

@ nyuszika7h oh, hai ragione. Continuo a git://confondermi git@github.com:user/project.git, che è la sintassi SCP-ish .

31

Come ha la risposta più popolare (di Alexey Vishentsev):

Il problema è che non hai alcun certificato dell'autorità di certificazione installato sul tuo sistema. E questi certificati non possono essere installati con setup.exe di cygwin.

Tuttavia, quest'ultima affermazione è falsa (ora, o lo è sempre stata, non lo so).

Tutto quello che devi fare è andare all'installazione di Cygwin e includere il pacchetto 'ca-certificate' (è sotto Net). Questo ha fatto il trucco per me.


1
L'errore cygwin git mostra CAfile: /etc/ssl/ca-bundle.crtche il pacchetto cygwin ca-certificate viene installato /usr/ssl/certs/ca-bundle.crt. Pertanto, ha dovuto modificare ~/.gitconfigper specificare la posizione: [http]quindisslCAinfo = /usr/ssl/certs/ca-bundle.crt
maxpolk

@maxpolk: avrei creato un collegamento ma l'effetto è lo stesso. Questo è chiaramente un bug in Cygwin Git, hai mai pensato di alzare un biglietto? sudo ln -s /usr/ssl/certs/ca-bundle.crt /etc/ssl/
Dirkjot,

A partire da oggi, 23-5-2013, cygwin git funziona bene su https: se ti capita anche di avere / ricordare di installare Cygwin ca-certificates.
bobbogo,

Sono arrivato qui da questa domanda , che indicava che una risposta può essere trovata qui. Tuttavia, né la risposta collegata né questa risposta funzionano per me; TortoiseSVN continua a produrreerror: SSL certificate problem, verify that the CA cert is OK.
OR Mapper il

Dove installiamo esattamente i file di installazione di Cygwin dal gestore dei pacchetti? I certificati ca devono trovarsi nella cartella bin di Git?
221b

16

Conosco la domanda originale che elenca Cygwin, ma ecco la soluzione per CentOS:

curl http://curl.haxx.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt

Fonte: http://eric.lubow.org/2011/security/fixing-centos-root-certificate-authority-issues/


Questo ha funzionato alla grande per me; dovresti probabilmente fare prima un backup dell'originale, come suggerisce l'OP. Sembra che questo accada quando Github rinnova il suo certificato, se si utilizza un sistema con uno precedente.
Evan Donovan,

Su CentOS 5 l'ho riparato da yum update openssl, che aggiorna anche il ca-bundle.
raarts

se seguirai questa opzione, dovresti verificare l'hash SHA-256 del file prima di usarlo. Puoi ottenere lo sha256sum per il file corrente con altri mezzi oltre all'arricciatura che stai configurando (come un browser su un altro computer che è già stato impostato in modo sicuro) e quindi confrontarlo con l'output di sha256sum /etc/pki/tls/certs/ca-bundle.crtper essere sicuro di avere il giusto file.
kbolino,

16

Per clonare su Windows durante l'impostazione di SSL verifica su false:

    git -c http.sslVerify=false clone http://example.com/e.git

Se vuoi clonare senza ricorrere alle tue impostazioni globali.


14

Su CentOS 5.x, un semplice yum update opensslaggiornamento del pacchetto openssl che ha aggiornato il ca-bundle.crtfile di sistema e risolto il problema per me.

Lo stesso può valere per altre distribuzioni.


yum! Questo ha funzionato per me per una vecchia installazione (4.1.2) di Red Hat Linux. Grazie!
Josh,

13

Se tutto quello che vuoi fare è solo usare il client git Cygwin con github.com, c'è un modo molto più semplice senza dover passare attraverso il fastidio di scaricare, estrarre, convertire, dividere i file di certificati. Procedere come segue (suppongo che Windows XP con Cygwin e Firefox)

  1. In Firefox, vai alla pagina di github (qualsiasi)
  2. fai clic sull'icona github sulla barra degli indirizzi per visualizzare il certificato
  3. Fai clic su "ulteriori informazioni" -> "visualizza certificato" -> "dettagli" e seleziona ciascun nodo nella gerarchia a partire da quello più in alto; per ognuno di essi fare clic su "Esporta" e selezionare il formato PEM:
    • GTECyberTrustGlobalRoot.pem
    • DigiCertHighAssuranceEVRootCA.pem
    • DigiCertHighAssuranceEVCA-1.pem
    • github.com.pem
  4. Salvare i file sopra indicati da qualche parte nel disco locale, modificare l'estensione in .pem e spostarli in / usr / ssl / certs nell'installazione di Cygwin (Windows: c: \ cygwin \ ssl \ certs)
  5. (opzionale) Esegui c_reshash dalla bash.

Questo è tutto.

Ovviamente questo installa solo una gerarchia di certificati, quella di cui hai bisogno per github. Naturalmente puoi usare questo metodo con qualsiasi altro sito senza la necessità di installare 200 certificati di siti di cui non ti fidi (necessariamente).


8

Se sei su Mac OS X, puoi installare il ca-cert-bundle tramite homebrew:

$ brew install curl-ca-bundle
$ git config --system http.sslcainfo /usr/local/share/ca-bundle.crt

La formula installa il pacchetto di certificati nella tua condivisione tramite:

share.install 'ca-bundle.crt'

Il sharemetodo è solo un alias di /usr/local/sharee curl-ca-bundle è fornito da Mozilla. È ciò che vedi essere referenziato in molti problemi. Spero che questo sia di aiuto in quanto non è molto semplice su come affrontarlo su Mac OS X. brew install curlnon ti darà molto, in quanto è solo un barile e non sarà collegato (l'esecuzione which curlfunzionerà sempre /usr/bin/curl, che è l'impostazione predefinita fornita con il tuo OS). Questo post può anche avere un certo valore .

Ovviamente dovrai disabilitare SSL prima dell'installazione homebrewpoiché è un repository git. Basta fare ciò che dice l'arricciatura quando si verifica un errore durante la verifica SSL e:

$ echo insecure >> ~/.curlrc

Una volta homebrewinstallato insieme a curl-ca-bundle, elimina .curlrce prova a clonare un repository su github. Assicurati che non ci siano errori e sarai a posto.

NOTA: se si ricorre a .curlrc, rimuoverlo dal sistema al momento del completamento del test. Questo file può causare problemi importanti, quindi utilizzalo per scopi temporanei e con cautela. brew doctorsi lamenterà nel caso in cui ti dimentichi di eliminarlo dal tuo sistema).

NOTA: se aggiorni la tua versione di git, dovrai eseguire nuovamente questo comando poiché le tue impostazioni di sistema verranno cancellate (sono memorizzate rispetto al binario git in base alla versione).

Quindi dopo aver eseguito:

$ brew update
$ brew upgrade

Se ottieni una nuova versione di git, esegui di nuovo:

$ git config --system http.sslcainfo /usr/local/share/ca-bundle.crt

E sarai pronto.

Infine, se hai una nuova versione di git, esegui:

$ git config -l --system

dovrebbe darti un errore sulla falsariga di

fatal: unable to read config file '/usr/local/Cellar/git/1.8.2.2/etc/gitconfig'

questo è il tuo consiglio che devi dire a git dove si trova il ca-bundle di Mozilla.

AGGIORNARE:

.curlrcpuò o meno essere il rimedio al tuo problema. In ogni caso, installa il ca-bundle di Mozilla sul tuo computer sia che tu debba scaricarlo manualmente o meno. Questo è ciò che è importante qui. Una volta ottenuto il pacchetto ca, sei a posto. Basta eseguire il comando git config e puntare git sul ca-bundle.

AGGIORNARE

Di recente ho dovuto aggiungere:

export CURL_CA_BUNDLE=/usr/local/share/ca-bundle.crtal mio .zshenvfile dot da quando sto usando zsh. l' git configopzione ha funzionato nella maggior parte dei casi, ma quando rvm get stableho colpito github su SSL ( ad esempio), ho comunque riscontrato problemi con i certificati. @Maverick lo ha sottolineato nel suo commento, ma nel caso in cui qualcuno lo manchi o presuma che non debbano necessariamente esportare questa variabile di ambiente oltre a eseguire il git config --system....comando. Grazie e spero che questo aiuti.

AGGIORNARE

Sembra che il bundle curl-ca sia stato recentemente rimosso dall'homebrew . C'è una raccomandazione qui .

Dovrai rilasciare alcuni file in:

$(brew --prefix)/etc/openssl/certs


1
Puoi anche provare quanto segue: export CURL_CA_BUNDLE=/usr/local/share/ca-bundle.crt
Maverick,

Ciao, sto riscontrando un problema simile ( stackoverflow.com/questions/20939105/… ) e lo stesso problema appare quando provo a installare home-brew. Cosa posso fare in questo caso? Digitando "git config --system http.sslcainfo /usr/local/share/ca-bundle.crt" errore restituito dalla mia console ": impossibile bloccare il file di configurazione /Applications/Xcode.app/Contents/Developer/usr/etc/ gitconfig: nessun file o directory ". Grazie per l'aiuto!
Mathieu,

@Mathieu è piuttosto strano. Sembra che il tuo sistema stia puntando a una versione di git relativa a XCode. Qual è l'output di eseguire 'what git' dal tuo terminale?
A-Dubb,

7

Puoi provare questo comando nel Terminale :

git config --global http.sslVerifica falso


5

Ho risolto questo problema usando apt-cyg (un ottimo programma di installazione simile a apt-get) per scaricare facilmente i certificati ca (incluso Git e molti altri):

apt-cyg install ca-certificates

Nota : apt-cyg dovrebbe essere prima installato. Puoi farlo dalla riga di comando di Windows:

cd c:\cygwin
setup.exe -q -P wget,tar,qawk,bzip2,subversion,vim

Chiudi Windows cmd e apri Cygwin Bash:

wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg
install apt-cyg /bin

Questo non ha funzionato per me - ho ancora lo stesso errore.
Holdenlee,

4

su un rasbery pi che ho avuto

pi @ raspbmc: ~ $ git clone http: //github.com/andreafabrizi/Dropbox-Uploader .git Clonazione in 'Dropbox-Uploader' ... errore: Problema con il certificato SSL CA (percorso? diritti di accesso?) durante l'accesso http: // github.com/andreafabrizi/Dropbox-Uploader.git/info/refs fatal: richiesta HTTP non riuscita

così id a

sudo apt-get install ca-certificates

poi

git clone http://github.com/andreafabrizi/Dropbox-Uploader.git  

lavorato


4

Se hai utilizzato un sistema operativo basato su debian, puoi semplicemente eseguirlo

apt-get install ca-certificati


4

Ho avuto lo stesso problema con Solaris Express 11. Mi ci è voluto un po ', ma sono riuscito a trovare dove dovevano essere collocati i certificati. Secondo /etc/openssl/openssl.cnf, il percorso per i certificati è / etc / openssl / certs. Ho inserito i certificati generati usando i consigli di cui sopra di Alexey.

Puoi verificare che le cose funzionino usando openssl dalla riga di comando:

openssl s_client -connect github.com:443

3

Prova a utilizzare un file .netrc, eseguirà l'autenticazione su https. Crea una chiamata di file .netrcnella tua home directory e inseriscila:

machine github.com login myusername password mypass

Vedi questo post per maggiori informazioni:

https://plus.google.com/u/0/104462765626035447305/posts/WbwD4zcm2fj


Questo è un problema di convalida del certificato, non un problema di autenticazione: alcuni sistemi operativi (incluso quello che esegue l'OP) non hanno il nuovo certificato del github che rilascia CA incluso nell'elenco delle scorte.
Charles Duffy,

3

Migliora la soluzione di RouMao disabilitando temporaneamente la verifica GIT / curl ssl in Windows cmd:

set GIT_SSL_NO_VERIFY=true
git config --global http.proxy http://<your-proxy>:443

La cosa positiva di questa soluzione è che ha effetto solo nella finestra cmd corrente.


3
Questo è ESTREMAMENTE PERICOLOSO! Il punto centrale della verifica del certificato SSL è proteggere il codice da eventuali manomissioni durante la trasmissione su HTTPS! Disabilitarlo significa che le persone maligne possono inserire vulnerabilità e altre cose cattive nel tuo codice mentre lo spingi e lo recuperi!

3

Hai controllato il tuo tempo?

Mi sono assolutamente rifiutato di rendere insicure le mie operazioni git e dopo aver provato tutto ciò che la gente ha menzionato qui, mi è sembrato che una possibile causa per cui i certificati non superano la verifica è che le date sono sbagliate (o la data di scadenza del certificato o il locale orologio ).

Puoi verificarlo facilmente digitando dateun terminale. Nel mio caso (un nuovo Raspberry Pi), l'orologio locale era impostato sul 1970, quindi un semplice ntpdate -u 0.ubuntu.pool.ntp.orgaggiustato tutto. Per una rPi, consiglierei anche di inserire il seguente script in un lavoro cron giornaliero (diciamo /etc/cron.daily/ntpdate):

#!/bin/sh
/usr/sbin/ntpdate -u 0.ubuntu.pool.ntp.org 1> /dev/null 2>&1

3

Generare il token di accesso da Github e salvarlo, poiché non verrà più visualizzato.

git -c http.sslVerify=false clone https://<username>:<token>@github.com/repo.git

o,

git config --global http.sslVerify false
git clone https://github.com/repo.git

2

Ho riscontrato lo stesso problema per configurare Git su una piattaforma di sviluppo collaborativo che devo gestire.

Per risolverlo:

  • Ho aggiornato il rilascio di Curl installato sul server. Scarica l'ultima versione dal sito Web Scarica la pagina di arricciatura e segui le procedure di installazione Procedure di installazione di arricciatura

  • Recupera il certificato dell'autorità che consegna il certificato per il server.

  • Aggiungi questo certificato al file CAcert utilizzato da curl. Sul mio server si trova in /etc/pki/tls/certs/ca-bundle.crt.

  • Configurare git per utilizzare questo file di certificato modificando il file .gitconfig e impostare il percorso sslcainfo. sslcainfo= /etc/pki/tls/certs/ca-bundle.crt

  • Sul computer client è necessario ottenere il certificato e configurare anche il file .gitconfig.

Spero che questo possa aiutare alcuni di voi.


1

Ho provato di tutto, alla fine ho cercato nel file hosts e lì c'era una voce casuale per github. La rimozione dell'alias ha risolto il problema

% SystemRoot% \ system32 \ drivers \ etc \ hosts


1

Ho semplicemente disabilitato l'autenticazione del certificato SSL e ho usato il semplice nome utente password login come mostrato di seguitoinserisci qui la descrizione dell'immagine



0

Avevo bisogno di due cose:

  1. vai alla configurazione di Cygwin e includi il pacchetto ' ca-certificati ' (è sotto rete) (come indicato altrove).

  2. Di 'a git dove trovare i certificati installati:

    GIT_SSL_CAINFO = / usr / ssl / certs / ca-bundle.crt GIT_CURL_VERBOSE = 1 git ...

    (L'opzione dettagliata non è necessaria)

    O memorizzando l'opzione in modo permanente:

    config git --global http.sslCAinfo /usr/ssl/certs/ca-bundle.crt

    idiota ...


-2

Ho avuto lo stesso problema. L'importazione del certificato o il comando per annullare la verifica SSL non ha funzionato. Risulta essere la password scaduta per il proxy di rete. È stata immessa la configurazione del proxy. nel file .gitconfig presente nel mio profilo utente di Windows. Ho appena rimosso l'intera voce e ha ripreso a funzionare.


-2

Su un sistema Mac OSX 10.5, sono stato in grado di farlo funzionare con un metodo semplice. Innanzitutto, esegui le procedure github e il test, che ha funzionato bene per me, dimostrando che il mio certificato era effettivamente ok. https://help.github.com/articles/generating-ssh-keys

ssh -T git@github.com

Poi ho finalmente notato l'ennesimo formato URL per i telecomandi. Ho provato gli altri sopra e non hanno funzionato. http://git-scm.com/book/ch2-5.html

git@github.com:MyGithubUsername/MyRepoName.git

Un semplice "git push myRemoteName" ha funzionato alla grande!


-2

Di recente (luglio 2014) ho avuto un problema simile e ho riscontrato su OS X (10.9.4) che era scaduto un certificato "DigiCert High Assurance EV Root CA" (anche se ne avevo anche un altro non scaduto).

  1. Apri Accesso portachiavi
  2. cerca certificati per "DigiCert"
  3. Visualizza menu> Mostra certificati scaduti

Ho trovato due certificati "DigiCert High Assurance EV Root CA", uno in scadenza dal 2031 novembre e quello scaduto a luglio 2014 (alcuni giorni prima). L'eliminazione del certificato scaduto ha risolto il problema per me.

Spero che sia di aiuto.


-2

Per quelli che usano Msys / MinGW GIT, aggiungi questo

  export GIT_SSL_CAINFO=/mingw32/ssl/certs/ca-bundle.crt 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.