Когда я пытаюсь подключиться к любому серверу HTTPS с git
, это выдает следующую ошибку:
error: gnutls_handshake() failed: A TLS packet with unexpected length was received. while accessing ...
fatal: HTTP request failed
Я думаю, что, возможно, некоторые пакеты, которые связаны с gnutls_handshake
, были сломаны. Итак, я хочу переустановить их.
Какие пакеты могут быть связаны с этими ошибками? Или как я могу исправить эту ошибку?
Ответы:
Получил причину проблемы, это был
gnutls
пакет. Это работает странно за прокси. Ноopenssl
работает нормально даже в слабой сети. Поэтому обходной путь, что мы должны собратьgit
сopenssl
. Для этого выполните следующие команды:(Не забудьте заменить
1.7.9.5
текущей версией git в вашей системе.)Затем, редактировать
debian/control
файл (выполнить команду:gksu gedit debian/control
) и заменить все экземплярыlibcurl4-gnutls-dev
сlibcurl4-openssl-dev
.Затем создайте пакет (если он не проходит тестирование, вы можете удалить строку
TEST=test
из файлаdebian/rules
):Установите новый пакет:
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
Вдохновленный здесь: https://github.com/xmendez/wfuzz/wiki/PyCurlSSLBug
источник
Для меня это закончилось тем, что сертификат SSL был самоподписанным. Дайте это попробовать
git config --global http.sslVerify false
источник
git
, удаляя защиту от атак «человек посередине».