我可以强制git只使用TLS吗?

时间:2012-07-03 04:33:39

标签: git networking ssl

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

成功结果

enter image description here

失败的结果

enter image description here

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

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

请帮助我知道我该怎么办。至少如果我必须与我的MIS争论这个问题,我可以弄清楚为什么不应该这样做。

谢谢!

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

PS.2。 Filezilla seemed had this problem也是。但我找不到他们如何解决问题(并适用于git)。

1 个答案:

答案 0 :(得分:0)

Git使用libcurl进行HTTP连接。

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