Ketika saya mencoba terhubung ke server HTTPS dengan git
, itu memberikan kesalahan berikut:
error: gnutls_handshake() failed: A TLS packet with unexpected length was received. while accessing ...
fatal: HTTP request failed
Saya pikir mungkin beberapa paket yang terkait gnutls_handshake
telah rusak. Jadi, saya ingin menginstalnya kembali.
Paket mana yang bisa dikaitkan dengan kesalahan ini? Atau bagaimana cara memperbaiki kesalahan semacam ini?
Jawaban:
Punya alasan masalah, itu
gnutls
paket. Ini bekerja aneh di belakang proxy. Tetapiopenssl
bekerja dengan baik bahkan di jaringan yang lemah. Jadi solusi adalah bahwa kita harus mengkompilasigit
denganopenssl
. Untuk melakukan ini, jalankan perintah berikut:(Ingatlah untuk mengganti
1.7.9.5
dengan versi git yang sebenarnya di sistem Anda.)Kemudian, edit
debian/control
file (jalankan perintahgksu gedit debian/control
:) dan ganti semua instancelibcurl4-gnutls-dev
denganlibcurl4-openssl-dev
.Kemudian buat paket (jika gagal saat pengujian, Anda dapat menghapus baris
TEST=test
dari filedebian/rules
):Instal paket baru:
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
Terinspirasi dari sini: https://github.com/xmendez/wfuzz/wiki/PyCurlSSLBug
sumber
Bagi saya, pada akhirnya sertifikat SSL ditandatangani sendiri. Cobalah ini
git config --global http.sslVerify false
sumber
git
, menghapus perlindungan Anda dari serangan man-in-the-middle.