Lorsque j'essaie de me connecter à un serveur HTTPS avec git
, le message d'erreur suivant s'affiche:
error: gnutls_handshake() failed: A TLS packet with unexpected length was received. while accessing ...
fatal: HTTP request failed
Je pense que certains paquets liés à gnutls_handshake
ont été cassés. Donc, je veux les réinstaller.
Quels paquets peuvent être liés à ces erreurs? Ou comment résoudre ce type d'erreur?
La raison du problème, c’était le paquet gnutls
name__. Cela fonctionne bizarre derrière un proxy. Mais openssl
fonctionne bien, même dans un réseau faible. La solution consiste donc à compiler git
avec openssl
name__. Pour ce faire, exécutez les commandes suivantes:
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
(N'oubliez pas de remplacer 1.7.9.5
par la version actuelle de git dans votre système.)
Editez ensuite le fichier debian/control
(exécutez la commande: gksu gedit debian/control
) et remplacez toutes les instances de libcurl4-gnutls-dev
par libcurl4-openssl-dev
.
Puis construisez le paquet (si cela échoue lors du test, vous pouvez supprimer la ligne TEST=test
du fichier debian/rules
):
Sudo apt-get install libcurl4-openssl-dev
Sudo dpkg-buildpackage -rfakeroot -b
Installer un nouveau paquet:
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
Inspiré d'ici: https://github.com/xmendez/wfuzz/wiki/PyCurlSSLBug
Pour moi, le certificat SSL a été auto-signé. Essayez ceci
git config --global http.sslVerify false