当我尝试使用 连接到任何 HTTPS 服务器时git,出现以下错误:
error: gnutls_handshake() failed: A TLS packet with unexpected length was received. while accessing ...
fatal: HTTP request failed
Run Code Online (Sandbox Code Playgroud)
我想可能是一些相关的包gnutls_handshake被破坏了。所以,我想重新安装那些。
哪些包可能与这些错误有关?或者我该如何解决这种错误?
Nya*_*baa 98
得到问题的原因,它是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
Run Code Online (Sandbox Code Playgroud)
(记得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
Run Code Online (Sandbox Code Playgroud)
安装新包:
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
| 归档时间: |
|
| 查看次数: |
177697 次 |
| 最近记录: |