Kiedy próbuję połączyć się z dowolnym serwerem HTTPS git
, pojawia się następujący błąd:
error: gnutls_handshake() failed: A TLS packet with unexpected length was received. while accessing ...
fatal: HTTP request failed
Myślę, że może niektóre pakiety, które są powiązane gnutls_handshake
, zostały zepsute. Chcę je ponownie zainstalować.
Które pakiety mogą być powiązane z tymi błędami? Lub jak naprawić tego rodzaju błąd?
Odpowiedzi:
Mam powód problemu, to była
gnutls
paczka. Dziwnie działa za serwerem proxy. Aleopenssl
działa dobrze nawet w słabej sieci. Rozwiązaniem jest więc, że powinniśmy skompilowaćgit
zopenssl
. Aby to zrobić, uruchom następujące polecenia:(Pamiętaj, aby zastąpić
1.7.9.5
aktualną wersją git w twoim systemie).Następnie edytuj
debian/control
plik (uruchom polecenie:gksu gedit debian/control
) i zastąpić wszystkie wystąpienialibcurl4-gnutls-dev
zlibcurl4-openssl-dev
.Następnie zbuduj pakiet (jeśli test nie powiedzie się, możesz usunąć wiersz
TEST=test
z plikudebian/rules
):Zainstaluj nowy pakiet:
i386:
sudo dpkg -i ../git_1.7.9.5-1_i386.deb
x86_64:
sudo dpkg -i ../git_1.7.9.5-1_amd64.deb
Inspirowany tutaj: https://github.com/xmendez/wfuzz/wiki/PyCurlSSLBug
źródło
Dla mnie skończyło się to tym, że certyfikat SSL został samopodpisany. Spróbuj tego
git config --global http.sslVerify false
źródło
git
, które usuwa, usuwając ochronę przed atakami typu man-in-the-middle.