& ldquo; ошибка: сбой gnutls_handshake () & rdquo; при подключении к https серверам

Когда я пытаюсь подключиться к любому HTTPS-серверу с помощью git, выдается следующая ошибка:

error: gnutls_handshake() failed: A TLS packet with unexpected length was received. while accessing ...
fatal: HTTP request failed

Я думаю, что, возможно, некоторые пакеты, связанные с gnutls_handshake, были повреждены. Итак, я хочу переустановить их.

Какие пакеты могут быть связаны с этими ошибками? Или как я могу исправить эту ошибку?

61
задан 24 April 2015 в 02:07

3 ответа

Получил причину проблемы, это был gnutls пакет. Это работает странно за прокси. Но openssl работает нормально даже в слабой сети. Поэтому обходной путь заключается в том, что мы должны скомпилировать git с openssl. Для этого выполните следующие команды:

sudo apt-get update
sudo apt-get install build-essential fakeroot dpkg-dev
sudo apt-get build-dep git
mkdir ~/git-openssl
cd ~/git-openssl
apt-get source git
dpkg-source -x git_1.7.9.5-1.dsc
cd git-1.7.9.5

(Не забудьте заменить 1.7.9.5 на актуальную версию git в вашей системе.)

Затем отредактируйте файл debian/control ( выполните команду: gksu gedit debian/control) и замените все экземпляры libcurl4-gnutls-dev на libcurl4-openssl-dev.

Затем соберите пакет (если он не проходит тест, вы можете удалить строку TEST=test из файла debian/rules):

sudo apt-get install libcurl4-openssl-dev
sudo dpkg-buildpackage -rfakeroot -b

Установить новый пакет:

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


Вдохновленный здесь: 1123]

0
ответ дан 24 April 2015 в 02:07

Для меня все закончилось тем, что SSL-сертификат был самоподписанным. Попробуйте это

git config --global http.sslVerify false

0
ответ дан 24 April 2015 в 02:07

Это упоминается в одном из комментариев к другому ответу, но я чувствую, что это должно быть более заметным https://askubuntu.com/users/177551 /paul-nelson-baker написал сценарий оболочки, который для меня решил эту проблему.

Скрипт доступен в его репозитории https://github.com/paul-nelson-baker/git-openssl-shellscript и перекомпилирует git с помощью openssl вместо gnutls. Прочитайте README для всей истории, но это сработало для меня, так что спасибо, Пол.

1
ответ дан 3 September 2020 в 22:02

Другие вопросы по тегам:

Похожие вопросы: