2012-01-25 14 views
151

devo utilizzare un server git senza certificati adeguati, ma io non voglio avere a che fareCome si imposta GIT_SSL_NO_VERIFY solo per repository specifici?

env GIT_SSL_NO_VERIFY=true git command 

ogni volta che faccio un'operazione di git. Ma vorrei anche lasciare SSL abilitato per altri repository git. C'è un modo per rendere questo locale per un singolo repo?

+0

correlati: [? Come posso fare git accettare un certificato firmato di auto] (https://stackoverflow.com/q/11621768/3357935) –

risposta

254

Si può fare

git config http.sslVerify "false" 

nel vostro repo specifica per disabilitare il controllo certificato SSL solo per quel pronti contro termine.

+5

config git --global http.sslVerify "false" – roothahn

+7

--global NON deve essere utilizzato perché l'OP ha richiesto espressamente che lo desidera solo per repository specifici. –

+1

quindi il mio commento non è una risposta all'OP, ma un commento. Perché? Cerco sempre google per conto mio e indovina dove mi atterro e ne ho bisogno a livello globale. Questa opzione è auto-esplicativa, quindi con un po 'di cervello si omette se non necessario. – roothahn

64

Si può fare come segue

Per un singolo repository

git config http.sslVerify false 

Per tutti repo

git config --global http.sslVerify false 
+6

Disabilita la verifica SSL per tutti i repository. La domanda iniziale era di renderla locale in un singolo repository. –

+6

Non avrei usato questo comando con sudo, anche per tutti i repository. –

+4

Perché nel mondo stai usando sudo? il repository locale non ne ha bisogno e la configurazione utente è in $ HOME (qualunque cosa sia presente sul tuo sistema), quindi non ha bisogno di sudo. – mcepl

77

Come quello che ha detto Thirumalai, ma all'interno del repository clonato e senza --global. Vale a dire,

  1. GIT_SSL_NO_VERIFY=true git clone https://url
  2. cd <directory-of-the-clone>
  3. git config http.sslVerify false
+0

Buona soluzione per i casi in cui' impossibile bloccare il file di configurazione globale .gitconfig: Autorizzazione negata' – antongorodezkiy

+0

Se si dispone dell'autorizzazione negata su .gitconfig, c'è qualcosa di seriamente ske * ed il tuo sistema. Il tuo $ HOME dovrebbe essere disponibile per te (che è dove dovrebbe essere .gitconfig, non dovrebbe?). – mcepl

+0

Questo non è in realtà il mio server. Ma grazie comunque. E ho rimosso il percorso dal messaggio di errore, in realtà su quel server git sta cercando di accedere a .gitconfig da qualche parte in '/ var/www/...' – antongorodezkiy

8

Se siete su una macchina Windows e hanno il Git installato, è possibile provare la seguente procedura:

  1. Go alla cartella di installazione di Git, es: C: \ Programmi (x86) \ Git \ etc
  2. Modificare il file: gitconfig
  3. Sotto il [http] sezione , aggiungere la riga: sslVerify = false

    [http] 
        sslVerify = false 
    
+1

non è quello che fa il comando git config per te? – bryanmac

+1

anche questo non soddisfa la domanda sopra dove dice che non vuole influenzare altri repository. – bryanmac

+0

La mia risposta è solo per l'approccio manuale. –

5

In particolare, se avete bisogno ricorsiva clone

GIT_SSL_NO_VERIFY=true git clone --recursive https://github.com/xx/xx.git 
1

per windows, se si vogliono configurazione globale, quindi eseguire

git config --global http.sslVerify false 
+0

OP richiesto per "repository specifici" in modo esplicito – malat

0

Su Linux, se si chiama questo all'interno della cartella di repository git:

git config http.sslVerify false 

questo aggiungerà sslVerify = false nella sezione [http] del file config nella cartella .git, che può anche essere la soluzione, se si desidera aggiungere manualmente con nano .git/config:

... 
[http] 
    sslVerify = false 
0

C'è un modo semplice per configurare GIT per gestire il server nel modo giusto. Basta aggiungere una sezione http specifica per il server git e specificare quale certificato (Base64 codificato) a fidarsi:

~/.gitconfig

[http "https://repo.your-server.com"] 
# windows path use double back slashes 
# sslCaInfo = C:\\Users\\<user>\\repo.your-server.com.cer 
# unix path to certificate (Base64 encoded) 
sslCaInfo = /home/<user>/repo.your-server.com.cer 

In questo modo non avrete più errori SSL e convalidare il (solitamente) certificato autofirmato. Questo è il modo migliore per andare, poiché ti protegge dagli attacchi man-in-the-middle. Quando disabiliti la verifica ssl, sei vulnerabile a questo tipo di attacchi.

https://git-scm.com/docs/git-config#git-config-httplturlgt

Problemi correlati