4

当我在特定网络环境下使用 git 时,它会发送 SSL 数据包而不是 TLS 数据包,并显示“ gnutls_hanshake() failed(): A TLS packet with unexpected length was receive”。这是我从 WireShark 日志中发现的唯一区别:

成功的结果

在此处输入图像描述

失败的结果

在此处输入图像描述

我使用的是 Ubuntu 12.04,x86-64 版本。而且这个问题也出现在 MacBook 和 11.10 的问题上。但是当我尝试使用 Win7 和 Git Gui 时,它没有出现错误。

如果我切换到其他网络环境,比如我家中的 pppoe,或者某个咖啡馆的 WiFi,我的 Ubuntu 12.04 问题就消失了(相同的设置,相同的操作系统)。

请帮助我知道我能做什么。至少如果我不得不与我的 MIS 争论这个问题,我可以弄清楚为什么这不应该发生。

谢谢 !

PS.1。我已经尝试了ask Ubuntu中列出的解决方案,但没有奏效。

PS.2。Filezilla 似乎也有这个问题。但我找不到他们如何解决问题(并适用于 git )。

4

1 回答 1

0

Git 使用 libcurl 进行 HTTP 连接。

我不知道库的任何运行时配置(它可能有),但您可能能够修改 Git 本身以强制它使用仅 TLS 连接。结帐 http.c。用于此目的的 libcurl 函数应该是 curl_easy_setopt,带有参数 CURLOPT_SSLVERSION 和 CURL_SSLVERSION_TLSv1。

于 2012-07-03T13:56:39.360 回答