Git pull / push - brak dostępu do HTTPS, wydaje się, że procedury SSL nie działają


105

Używam Git (i GitHub) na co dzień i wszystko działa dobrze i nagle nie mogę już komunikować się z moim zdalnym repozytorium GitHub za pomocą moich poleceń Git. Kiedy próbuję wykonać polecenie „Git pull”, pojawia się następujący błąd:

fatal: brak dostępu do „ https://github.com/snahrvar/eatibl.git/ ”: błąd: 1407742E: procedury SSL: SSL23_GET_SERVER_HELLO: wersja protokołu alertu tlsv1

Testowałem więc w wielu repozytoriach i otrzymuję te same błędy na moim komputerze. Miałem kogoś innego w interakcji z tymi samymi repozytoriami i dla nich to działa dobrze. Przed tym błędem wykonałem „npm install sharp” w projekcie i zakończyło się niepowodzeniem i podejrzewam, że mogło to zepsuć niektóre ustawienia SSL, ale to szalone przypuszczenie!

Wszelkie ogólne przemyślenia lub wskazówki byłyby bardzo mile widziane!

Jeśli w ogóle jest to pomocne, oto moje środowisko:

  • Wersja Gita: 1.9.4.msysgit.2
  • Wersja systemu Windows: Windows 8.1

Ten sam problem tutaj ?
— KŁAMSTWA - CHIOUKH

To samo dotyczy git 1.9.5.msysgit.1
— Maxime Helen

Mam ten sam problem
— ścigaj cabrera

11
Uważam, że ta zmiana spowodowała błąd: github.com/blog/2507-weak-cryptographic-standards-removed
— Dan H

Miałem ten sam problem i zainstalowałem pulpit Github i wszystko działało dobrze!
— Damian

Odpowiedzi:


69

Aktualizacja TortoiseGit i GCM nie pomogła mi, ale aktualizacja samego Gita tak, jak porada @ Frederic w komentarzach.

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

Aby upewnić się, że nowa wersja Git instaluje się poprawnie i nie powoduje konfliktów z poprzednimi instalacjami (może, jeśli używałeś TortoiseGit, ponieważ używałby innych folderów i bałaganu ze zmienną PATH), usuń istniejącą instalację Git przed zainstalowaniem zaktualizowanego Gita . Może również wymagać instalacji z uprawnieniami administratora.


Nie jestem pewien, co się stało z ostatnią wersją gita, aby zacząć rzucać te błędy dzisiaj, ale ta odpowiedź jest dla mnie. Wykonałem nową instalację (dwudniową kompilację) i utworzyłem kopię zapasową i nie uruchamiam żadnych błędów SSL. Porozmawiaj o igle w stogu siana.
— JeffBaumgardt

3
Najciekawsze jest to, że sam github o tym nie wspomina, mimo że jest to prawdopodobnie związane z ich ostatnimi aktualizacjami. Szybkie wyszukiwanie w Google dotyczące podobnych problemów z innymi hostami kodu obwinia OpenSSL.
— feos

Tak, wystarczy zaktualizować do najnowszej wersji! Dzięki: D
— Shayan Nahrvar

1
@gath Prawdopodobnie masz 2 niekompatybilne instalacje gita, spróbuj całkowicie odinstalować istniejącą, a następnie zainstaluj ponownie git od podstaw. Ale twój błąd jest inny stackoverflow.com/questions/3778042/ ...
— feos

5
Dla mnie „usuń istniejącą instalację Gita przed zainstalowaniem zaktualizowanego Gita” było kluczem do całej tej porażki.
— Richard Ockerby,

20

Prawdopodobnie napotkasz niezgodność z wycofaniem przez GitHub słabych protokołów szyfrowania SSL:

Powiadomienie o usunięciu słabych standardów kryptograficznych

Rozwiązanie będzie się różnić, ale w przypadku systemu Windows prawdopodobnie musisz zaktualizować menedżera poświadczeń Git do wersji 1.14.0

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


1
Czy nadal będą obsługiwać wbudowanego menedżera poświadczeń Git dla systemu Windows: wincred. Otrzymuję ten sam błąd z tym narzędziem
— Max Hartshorn,

Ta odpowiedź pomogła podać kontekst zmiany, ale rozwiązanie z @feos jest tym, które zadziałało dla mnie (Windows 10, TortoiseGit)
— Eric Farraro

14

Jeśli używasz Android Studio lub IntelliJ IDEA, aktualizacja Gita do najnowszej wersji i zmiana ścieżki tak, aby wskazywała na nową wersję, rozwiązuje problem za mnie.

Tutaj wprowadź opis obrazu


1
U mnie to też zadziałało: zainstaluj najnowszą wersję Gita i wskaż na nią IntelliJ IDEA.
— user1825866

8

Używając TortoiseGit, zrobiłem wszystkie inne poprawki / aktualizacje podane w tym celu i nadal bez sukcesu. Znalazłem to: nie mogę nagle wykonać polecenia push / pull / download

Moje ustawienia TortoiseGit dla Git dla Windows Ścieżka Git.exe wskazywała C:\Program Files (x86)\Git\bin. Zmieniłem to na C:\Program Files\Git\bini teraz znowu działa.


3
Sprawdziłem to za pomocą Check nowprzycisku w Generaloknie ustawień, ze x86ścieżką, którą otrzymałem git version 1.9.5.msysgit.1, po zmianie na C:\Program Files\Git\binmam get git version 2.16.2.windows.1iz tą ścieżką wszystko działa dobrze.
— apdevelop

8

To właśnie zadziałało dla mnie.

  1. Zainstaluj najnowszą wersję Git stąd: https://git-scm.com/download/win
  2. W TortoiseGit przejdź do menu Ustawienia → Ogólne → Ścieżka Git.exe - zmień ścieżkę z 32-bitowej na 64-bitową: C: \ Program Files (x86) \ Git \ bin → C: \ Program Files \ Git \ bin

Słuszna uwaga. Jeśli ktoś (taki jak ja) korzystał ze starej 32-bitowej wersji systemu Windows, pamiętaj, aby zastąpić ją w PATH.
— AG

To zaoszczędziło mi czasu @dgundersen
— Tejas Mehta

8

Aktualizacja Gita nie wystarczyła w mojej sytuacji. Po kilku godzinach debugowania to była moja poprawka:

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

To rozwiązało problem dla mnie i na zupełnie innej konfiguracji (Mac OS X). curlnadal przekazuje mi ten komunikat, co sprawia, że ​​zastanawiam się, czy istnieje takie ustawienie, które dotyczy wszystkich aplikacji ssl, a nie tylko git...
— chesterbr

Która z tych linii?
— Dmitri Zaitsev

2

Miałem ten sam problem podczas ściągania kodu z GitHub na moim terminalu Visual Studio Code . Rady zawarte w poprzednich odpowiedziach okazały się przydatne i zhakowałem rozwiązanie, wykonując poniższe czynności:

To repozytorium było całkiem przydatne.

Mam nadzieję, że to komuś pomoże.


2

TL; DR: git config --system http.sslbackend schanneli wyłącz kontrole HTTPS github.comw oprogramowaniu antywirusowym


Używam wiersza poleceń Git w systemie Windows 8 x64. Ponadto moje oprogramowanie antywirusowe domyślnie sprawdza ruch HTTPS . Podobnie jak inne osoby, odpowiadając na to pytanie, korzystam z GitHub prawie codziennie.

  • Aktualizacja Gita - nie pomogła - ponieważ używałem OpenSSL (patrz poniżej)
  • Aktualizowanie menedżera poświadczeń - nie pomogło

Potem zacząłem bawić się przełączaniem backendu SSL:

git config --system http.sslbackend openssl ----------------vs------------------ git config --system http.sslbackend schannel a oprogramowanie antywirusowe sprawdza ruch SSL:

  1. OpenSSL, HTTPS sprawdza ON: error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01
  2. OpenSSL, HTTPS wyłącza: SSL certificate problem: unable to get local issuer certificate
  3. SecureChannel, HTTPS sprawdza WŁĄCZONE: schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.
  4. SecureChannel, HTTPS wyłącza kontrolę: działa dobrze

PS: Zamiast wiersza poleceń możesz po prostu ponownie zainstalować najnowszą wersję Gita, wybierając opcję „Użyj natywnej biblioteki weryfikacji SSL systemu Windows”.

PPS: Przypadek (3) wydaje się być błędem w bibliotece Schannel, ponieważ certyfikat MITM, którego używa moje oprogramowanie antywirusowe, znajduje się na białej liście na moim komputerze.


Podczas ponownej instalacji gita całkowicie usunąłem jego starą instalację, a do nowej instalacji wybrałem OpenSSL, więc myślę, że ponownie zainstalowałem go od zera. Ale nie mam programu antywirusowego. Czy ponowna instalacja zaplecza SSL coś dla Ciebie zmieniła, czy tego nie zrobiłeś?
— feos

@feos Tak, działa tylko dla mnie w trybie innym niż OpenSSL. Dodatkowo musiałem wyłączyć sprawdzanie https w AV.
— Mike Makarov

Nadal nie jest dla mnie jasne, czy przeinstalowałeś SSL, czy nie?
— feos

@feos Nie, nie. Nie sądzę, aby można było „ponownie zainstalować SSL” w systemie Windows. Więc nie jestem pewien, co przez to rozumiesz. Podczas instalowania najnowszego klienta git masz możliwość wyboru - zaplecze OpenSSL lub zintegrowane z systemem Windows. Wybrałem OpenSSL. To nie zadziałało i zmieniłem backend poprzez konfigurację. Mam nadzieję, że to wyjaśnia.
— Mike Makarov

Tak, dzięki. Myślę, że miałeś zupełnie inny problem niż OP.
— feos

1

W systemie macOS możesz zainstalować najnowszą wersję gitza pośrednictwem Homebrew.


Niestety nie działało to dla mnie na Mac OS X 10.7.5 (Lion) - pojawił się ten sam błąd. Potem próbowałem zainstalować Homebrewod zera - wydaje się, że to haczyk22. 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, więc możesz spróbować zainstalować go ręcznie ze strony Wydań? Wydaje się, że zajęli się tym chwytem22 w 1.5.5
— AS

1

To samo dotyczy Gita 1.9.5.msysgit.1. Próbowałem zainstalować https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0 , ale bez zmian.

Właściwie nic się nie dzieje po instalacji; może robię coś złego? (To może nie pomóc w przypadku pierwszego pytania, ale dla innych ludzi, tak!)


6
Aby pomóc społeczności, właśnie zaktualizowałem git (dla Windows) (za pomocą git-scm.com/download/win ) i rozwiązałem problem!
— Frederic

2
W systemie Windows 7 Pro / 64 zaktualizowałem git za pomocą łącza git-scm.com/download/win. Ten zainstalował git do c: \ program files \ git zamiast c: \ program files (x86) \ git. Moja wersja zmieniła się z 1.9.5.msysgit.1 na 2.16.2.windows.1, a kiedy skonfigurowałem WebStorm, aby wskazywał na nowszą wersję, tajemniczy błąd 1407742E: SSL: SSL23_GET_SERVER_HELLO: tlsv1 protokołu alertów ustał.
— CODE-REaD

Do Twojej wiadomości, moja konfiguracja to: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
— CODE-REaD

Powinieneś zachęcić do ulepszenia odpowiedzi.
— Edward Thomson,

1

Tak, napotkałem dziś ten sam problem przy żądaniu ściągnięcia i rozwiązaniem było po prostu zaktualizowanie Gita poprzez pobranie najnowszej (2.16.2) 64-bitowej wersji Git dla Windows. Został wydany 5 dni temu, 20.02.2018.


1

Komentarz @andw zadziałał dla mnie:

Zaktualizuj Git w wersji 1.9.5 do 2.15.1, wykonując następujące czynności:

W sourceTree przejdź do menu Narzędzia → Opcje → Git → Użyj wbudowanego Gita .


1

Szybkim rozwiązaniem byłoby git config --global http.sslVerify true , ale nie jest to zalecane, ponieważ uniemożliwia to użycie SSL.

Drugim i lepszym sposobem jest użycie kluczy ssh zamiast adresu URL SSL.

Kroki do generowania kluczy SSH

o Uruchom następującą komendę w terminalu Git (Git Bash): ssh-keygen

Po uruchomieniu polecenia pojawi się następujący komunikat:

Generowanie pary kluczy publiczny / prywatny RSA.

Wpisz plik, w którym chcesz zapisać klucz (/h//.ssh/id_rsa):

Podaj ścieżkę do klucza, w którym ma być przechowywany, na przykład podaj plik, w którym ma zostać zapisany klucz (/h//.ssh/id_rsa): C:\Users\Public\my-new-ssh-key

Następnie podaj hasło dla tego klucza (dowolne hasło składające się z minimum 8 znaków)

• Następnie uruchom następującą komendę: eval „$ (ssh-agent –s)”

• Uruchom następujące polecenie: ssh-add C:/Users/Public/my-new-ssh-keyUwaga: użyj ukośnika w ścieżce do nowo utworzonego klucza SSH.

Następnie dodaj zawartość pliku my-new-ssh-key.pub i dodaj ją w polu tekstowym Dodaj klucz publiczny (Bitbucket, GitHub itp.)


0

Podczas łączenia się ze zdalnym repozytorium w celu pobrania, ściągnięcia, wypchnięcia itp. Miałem ten sam błąd:

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

Właśnie ponownie zainstalowałem 64-bitowy Git zamiast 32-bitowego i to rozwiązało problem.

Po instalacji sprawdź ścieżkę Git w zmiennych środowiskowych. Powinno być:

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

0

Jest to problem z IntelliJ i RubyMine. GitHub musi mieć wyłączony SSL (może zgodność z PCI?) Na korzyść TLS. Jeśli otworzysz Ustawienia w IntelliJ lub RubyMine i przejdziesz do Kontrola wersji> Git, zobaczysz, że używa git.exe zainstalowanego w ścieżce aplikacji. Powinieneś pobrać najnowszą wersję Gita i zmienić ścieżkę w ustawieniach VCS, aby wskazywała na to, np. C: \ Program Files \ Git \ bin \ git.exe, jeśli instalujesz ją w systemie Windows. Po tym działa jak urok.


0

Czasami jest to spowodowane przestarzałym msysgit, który używa starego ssl i nie jest już obsługiwany, możesz zainstalować najnowszy git dla Windows i wskazać ścieżkę git.exe w ustawieniach żółwia, a następnie ten problem zniknął.


0

Napotkano podobny błąd. W systemie Windows zaktualizowano git w systemie Windows do najnowszej wersji. To rozwiązało problem.


W jaki sposób to dodaje cokolwiek do zaakceptowanej odpowiedzi, która sugeruje aktualizację gita w celu rozwiązania problemu?
— David,

Wyjaśniłem, co mi pomogło. Być może podobnie jak niektórzy inni.
— Olusola Omosola

0

Aktualizacja wersji Gita załatwiła mi sprawę. Miałem wersję 1.9.5 i tak i zaktualizowałem do 2.21.0 w systemie Windows. Aktualizacja jest również bardzo łatwa. Nie musimy odinstalowywać starszej wersji. Pobierz najnowszy instalator Git i po prostu naciskaj dalej, używając domyślnych opcji, a wersja zostanie zmieniona na nową, a wszystkie stare ustawienia będą nadal działać jak klucze ssh itp. Nie musimy ponownie generować kluczy i włączać github lub inne repozytorium.

Wcześniej klonowanie protokołu https nie działało i powodowało błąd

krytyczny: brak dostępu do „ https://github.com/tensorflow/models/ ”: błąd: 1407742E: procedury SSL: SSL23_GET_SERVER_HELLO: wersja protokołu alertu tlsv1

Po pobraniu nowej wersji i uruchomieniu tego samego polecenia klonowania działało bez żadnych problemów.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.