Git pull / push: impossibile accedere a HTTPS, le routine SSL sembrano essere inattive


105

Uso Git (e GitHub) quotidianamente e tutto ha funzionato bene e all'improvviso non riesco più a comunicare con il mio repository GitHub remoto tramite i miei comandi Git. Quando provo a "Git pull", dà il seguente errore:

irreversibile: impossibile accedere a " https://github.com/snahrvar/eatibl.git/ ": errore: 1407742E: routine SSL: SSL23_GET_SERVER_HELLO: versione protocollo di avviso tlsv1

Quindi, ho testato su più repository e ottengo gli stessi errori sul mio computer. Qualcun altro ha interagito con quegli stessi repository e per loro funziona bene. Prima di questo errore, ho eseguito un "npm install sharp" su un progetto e che ha finito per fallire, e sospetto che questo possa aver incasinato alcune impostazioni SSL, ma è un'ipotesi folle!

Qualsiasi pensiero o guida generale sarebbe molto apprezzato!

Se è utile, ecco il mio ambiente:

  • Versione Git: 1.9.4.msysgit.2
  • Versione Windows: Windows 8.1

Lo stesso problema qui ?
LYES - CHIOUKH

Lo stesso qui con git 1.9.5.msysgit.1
Maxime Helen

Sto riscontrando lo stesso problema
insegui Cabrera

11
Credo che questo cambiamento sia ciò che ha causato l'errore: github.com/blog/2507-weak-cryptographic-standards-removed
Dan H

Ho avuto lo stesso problema e ho installato il desktop Github e tutto ha funzionato bene!
Damian

Risposte:


69

L'aggiornamento di TortoiseGit e GCM non mi ha aiutato, ma l'aggiornamento di Git lo ha fatto, come da consiglio di @ Frederic nei commenti.

https://git-scm.com/download/win

Per assicurarti che la nuova versione di Git venga installata correttamente e non sia in conflitto con le installazioni precedenti (potrebbe, se hai usato TortoiseGit, perché userebbe cartelle diverse e farebbe confusione con la variabile PATH), rimuovi l'installazione Git esistente prima di installare Git aggiornato . Potrebbe anche essere necessario installare con diritti di amministratore.


Non sono sicuro di cosa sia successo con l'ultima versione di git per iniziare a lanciare questi errori oggi, ma questa risposta è per me. Ho eseguito una nuova installazione (build precedente di 2 giorni) e sono di nuovo attivo e non ho eseguito errori SSL. Parla di un ago nel pagliaio.
JeffBaumgardt

3
La parte più interessante è che GitHub stesso non lo menziona, anche se è probabilmente correlato ai loro recenti aggiornamenti. Una rapida ricerca su Google per problemi simili con altri host di codice incolpa OpenSSL.
feos

Sì, solo bisogno di aggiornare all'ultima versione! Grazie: D
Shayan Nahrvar

1
@gath Probabilmente hai 2 installazioni incompatibili di git, prova a disinstallare completamente quella esistente, quindi reinstalla git da zero. Ma il vostro errore è uno diverso stackoverflow.com/questions/3778042/...
FEOS

5
Per me "rimuovere l'installazione di Git esistente prima di installare Git aggiornato" è stata la chiave di tutta questa debacle.
Richard Ockerby

20

Probabilmente stai riscontrando un'incompatibilità con la deprecazione di GitHub dei protocolli di crittografia SSL deboli:

Avviso di rimozione di standard crittografici deboli

La soluzione varierà, ma per Windows probabilmente dovrai aggiornare il gestore delle credenziali Git alla 1.14.0

https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0


1
Continueranno a supportare il gestore delle credenziali Git integrato per Windows: wincred. Ricevo lo stesso errore con quello strumento
Max Hartshorn,

Questa risposta ha contribuito a fornire un contesto sul cambiamento, ma la soluzione di @feos è quella che ha funzionato per me (Windows 10, TortoiseGit)
Eric Farraro,

14

Se stai utilizzando Android Studio o IntelliJ IDEA, l'aggiornamento di Git alla versione più recente e la modifica del percorso in modo che punti alla nuova versione risolve il problema per me.

Inserisci qui la descrizione dell'immagine


1
Questo ha funzionato anche per me: installa l'ultima versione di Git e punta IntelliJ IDEA su di essa.
user1825866

8

Utilizzando TortoiseGit, ho eseguito tutte le altre correzioni / aggiornamenti forniti per questo e ancora senza successo. Ho trovato questo: Impossibile eseguire il push / pull / fetch all'improvviso

Le mie impostazioni TortoiseGit per Git per il percorso Git.exe di Windows puntavano C:\Program Files (x86)\Git\bin. L'ho cambiato in C:\Program Files\Git\bine ora funziona di nuovo.


3
L'ho controllato usando il Check nowpulsante nella Generalfinestra di dialogo delle impostazioni, con il x86percorso che ho ottenuto git version 1.9.5.msysgit.1, dopo aver cambiato in C:\Program Files\Git\binho ottenuto git version 2.16.2.windows.1e con quel percorso tutto funziona bene.
apdevelop

8

Questo è ciò che ha funzionato per me.

  1. Installa l'ultima versione di Git da qui: https://git-scm.com/download/win
  2. In TortoiseGit, vai al menu ImpostazioniGeneralePercorso Git.exe - cambialo da 32 bit a 64 bit percorso: C: \ Programmi (x86) \ Git \ bin → C: \ Programmi \ Git \ bin

Buon punto. Se qualcuno (come me) ha utilizzato la vecchia versione di Windows a 32 bit, assicurati di sostituirla nel PERCORSO.
AG

Questo mi ha fatto risparmiare tempo @dgundersen
Tejas Mehta

8

L'aggiornamento di Git non era sufficiente nella mia situazione. Dopo il debug per diverse ore, questa era la mia soluzione:

C:\wamp64\www\maandlastenmanager> git config http.sslVersion
tslv1.0

C:\wamp64\www\maandlastenmanager> git config http.sslVersion tlsv1.2

C:\wamp64\www\maandlastenmanager> git config http.sslVersion
tslv1.2

Questo ha risolto il problema per me e con una configurazione completamente diversa (Mac OS X). curlmi dà ancora il messaggio, il che mi fa chiedere se esiste un'impostazione come quella che vale per tutte le app ssl, non solo git...
chesterbr

Quale di queste righe?
Dmitri Zaitsev

2

Ho avuto lo stesso problema durante l'estrazione del codice da GitHub sul mio terminale Visual Studio Code . Ho trovato utile il consiglio nelle risposte precedenti e ho hackerato una soluzione insieme seguendo i passaggi seguenti:

Questo repository è stato abbastanza utile.

Spero che questo aiuti qualcuno.


2

TL; DR: git config --system http.sslbackend schannele disattiva i controlli HTTPS github.comnel tuo software antivirus


Sto usando la riga di comando Git su Windows 8 x64. Inoltre, il mio software antivirus controlla il traffico HTTPS per impostazione predefinita. Come altre persone nel rispondere a questa domanda, utilizzo GitHub quasi quotidianamente.

  • Aggiornamento di Git - non ha aiutato - perché ho usato OpenSSL (vedi sotto)
  • Aggiornamento del gestore delle credenziali: non ha aiutato

Poi ho iniziato a giocare cambiando il backend SSL:

git config --system http.sslbackend openssl ----------------vs------------------ git config --system http.sslbackend schannel e il software antivirus controlla il traffico SSL:

  1. OpenSSL, HTTPS controlla ON: error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01
  2. OpenSSL, HTTPS controlla OFF: SSL certificate problem: unable to get local issuer certificate
  3. SecureChannel, HTTPS controlla: schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.
  4. SecureChannel, HTTPS controlla OFF: ha funzionato bene

PS: invece della riga di comando, puoi semplicemente reinstallare l'ultimo Git, selezionando "Usa libreria di convalida SSL nativa di Windows".

PPS: Il caso (3) sembra essere un bug nella libreria schannel, perché il certificato MITM utilizzato dal mio software antivirus è inserito nella whitelist sulla mia macchina.


Durante la reinstallazione di git, ho rimosso completamente la sua vecchia installazione e per la nuova installazione ho scelto OpenSSL, quindi immagino che l'abbia reinstallato da zero. Ma non ho un antivirus. La reinstallazione del backend SSL ha cambiato qualcosa per te o non l'hai fatto?
feos

@feos Sì, funziona solo per me in modalità non OpenSSL. Inoltre, ho dovuto disattivare i controlli https in AV.
Mike Makarov

Non mi è ancora chiaro, hai reinstallato SSL o no?
feos

@feos No, non l'ho fatto. Non credo che si possa "reinstallare SSL" su Windows. Quindi non sono sicuro di cosa intendi con questo. Quando installi l'ultimo client git, puoi scegliere tra il backend OpenSSL o quello integrato in Windows. Ho scelto OpenSSL. Non ha funzionato e ho cambiato il backend attraverso la configurazione. Spero che questo chiarisca.
Mike Makarov

Sì, grazie. Penso che tu abbia avuto un problema completamente diverso rispetto all'OP.
feos

1

Su macOS, puoi installare l'ultima versione gittramite Homebrew.


Sfortunatamente questo non ha funzionato per me su Mac OS X 10.7.5 (Lion) - ho ricevuto lo stesso errore. Ho quindi provato Homebrewa eseguire l' installazione da zero - sembra essere un problema22. error: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version while accessing https://github.com/Homebrew/brew/info/refs?service=git-upload-pack fatal: HTTP request failed
Setaa

@Setaa, allora potresti provare a installarlo manualmente dalla pagina delle versioni? Sembra che abbiano affrontato quella cattura22 nella 1.5.5
AS

1

Lo stesso per me anche con Git 1.9.5.msysgit.1. Ho provato a installare https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0 , ma nessuna modifica.

In realtà, non accade nulla dopo l'installazione; forse sto facendo qualcosa di sbagliato? (Potrebbe non essere d'aiuto per la domanda iniziale, ma per altre persone, sì!)


6
Solo per aiutare la comunità, ho appena aggiornato git (per Windows) (con git-scm.com/download/win ) e ho risolto il problema!
Frederic

2
In Windows 7 Pro / 64, ho aggiornato git utilizzando il collegamento git-scm.com/download/win. Questo ha installato git in c: \ program files \ git invece che c: \ program files (x86) \ git. La mia versione è cambiata da 1.9.5.msysgit.1 a 2.16.2.windows.1 e quando ho configurato WebStorm per puntare alla versione più recente, il misterioso 1407742E: Routine SSL: SSL23_GET_SERVER_HELLO: errore versione protocollo di avviso tlsv1 cessato.
CODE-REaD

Cordiali saluti, la mia configurazione è:C:\Program Files\Git\etc> cat install-options.txt Editor Option: Notepad++ Path Option: Cmd Plink Path: C:\Program Files (x86)\PuTTY\plink.exe SSH Option: Plink CURL Option: OpenSSL CRLF Option: CRLFAlways Bash Terminal Option: MinTTY Performance Tweaks FSCache: Enabled Use Credential Manager: Enabled Enable Symlinks: Disabled
CODICE REaD

Dovresti incoraggiarti ad aggiornare una risposta.
Edward Thomson,

1

Sì, oggi ho riscontrato lo stesso problema su una richiesta pull e la soluzione è stata semplicemente aggiornare Git scaricando l'ultima (2.16.2) versione a 64 bit di Git per Windows. È stato rilasciato 5 giorni fa, il 20/02/2018.


1

Il commento di @andw ha funzionato per me:

Aggiorna la versione di Git da 1.9.5 a 2.15.1 utilizzando questi passaggi:

In sourceTree, vai al menu StrumentiOpzioniGitUsa Git incorporato .


1

Una soluzione rapida sarebbe git config --global http.sslVerify true , ma non è raccomandato in quanto vanifica lo scopo utilizzando SSL.

Un secondo e migliore modo è usare le chiavi ssh piuttosto che un URL SSL.

Passaggi per generare chiavi SSH

o Esegui il seguente comando in un terminale Git (Git Bash): ssh-keygen

Dopo aver eseguito il comando, apparirà il seguente messaggio:

Generazione della coppia di chiavi RSA pubblica / privata.

Immettere il file in cui salvare la chiave (/h//.ssh/id_rsa):

Fornire il percorso per la chiave da memorizzare, ad esempio, immettere il file in cui salvare la chiave (/h//.ssh/id_rsa): C:\Users\Public\my-new-ssh-key

Quindi fornire la passphrase per quella chiave (qualsiasi password di minimo 8 caratteri)

• Quindi eseguire il seguente comando: eval "$ (ssh-agent –s)"

• Eseguire il seguente comando: ssh-add C:/Users/Public/my-new-ssh-keyNota: utilizzare la barra nel percorso della chiave SSH appena creata.

Successivamente, aggiungi il contenuto del file my-new-ssh-key.pub e aggiungilo nell'area di testo per Aggiungi chiave pubblica (Bitbucket, GitHub, ecc.)


0

Durante la connessione a un repository remoto per recuperare, tirare, spingere, ecc., Ho avuto lo stesso errore:

fatal: unable to access 'https://github.com/repository.git/': error:1
407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

Ho appena reinstallato Git a 64 bit al posto di 32 bit e questo ha risolto il problema.

Dopo l'installazione, verifica il percorso Git nelle variabili di ambiente. Dovrebbe essere:

C:\Program Files\Git\bin\git.exe

0

Questo è un problema con IntelliJ e RubyMine. GitHub deve avere disabilitato SSL (conformità PCI forse?) A favore di TLS. Se apri Impostazioni in IntelliJ o RubyMine e vai a Controllo versione> Git, vedrai che utilizza un git.exe installato nel percorso dell'applicazione. Dovresti scaricare la versione più recente di Git e modificare il percorso nelle impostazioni di VCS in modo che punti a quella, ad esempio C: \ Programmi \ Git \ bin \ git.exe se lo installi su Windows. Funziona come un incantesimo dopo.


0

A volte, questo è causato da msysgit obsoleto che utilizza il vecchio ssl e non più mantenuto, puoi installare l'ultimo git per Windows e puntare il percorso git.exe nell'impostazione tartaruga su di esso, quindi questo problema è scomparso.


0

Si è verificato un errore simile. Su Windows, git aggiornato su Windows all'ultima versione. Questo ha risolto il problema.


In che modo questo aggiunge qualcosa alla risposta accettata che suggerisce di aggiornare git per risolvere il problema?
David

Ho spiegato cosa ha funzionato per me. Simile a quello che forse hanno fatto anche altri.
Olusola Omosola

0

L'aggiornamento della versione di Git ha fatto il trucco per me. Avevo la versione 1.9.5 e così ho aggiornato alla 2.21.0 su Windows. Anche l'aggiornamento è molto semplice. Non è necessario disinstallare la versione precedente. Scarica l'ultimo programma di installazione di Git e continua a premere Avanti utilizzando le opzioni predefinite e la versione verrà modificata nella nuova versione e tutte le vecchie impostazioni continueranno a funzionare come chiavi ssh ecc. Non è necessario generare nuovamente le chiavi e attivarle github o qualsiasi altro repository.

In precedenza la mia clonazione del protocollo https non funzionava e dava errori

irreversibile: impossibile accedere a " https://github.com/tensorflow/models/ ": errore: 1407742E: routine SSL: SSL23_GET_SERVER_HELLO: versione protocollo di avviso tlsv1

Dopo aver scaricato la nuova versione ed eseguito lo stesso comando clone, ha funzionato senza problemi.

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.