": gnutls_handshake () не удалось" при подключении к серверам https

45

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

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

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

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

    
задан Nyambaa 12.09.2012 в 07:43
источник

2 ответа

84

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

sudo apt-get update
sudo apt-get install build-essential fakeroot dpkg-dev libcurl4-openssl-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 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

Вдохновленный отсюда: Ссылка

    
ответ дан Nyambaa 13.09.2012 в 05:34
0

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

git config --global http.sslVerify false     

ответ дан Rick 26.02.2018 в 00:15