当我在特定网络环境下使用git时,它会发送SSL数据包而不是TLS,并说“gnutls_hanshake() failed(): A TLS packet with unexpected length was receive
”。这是我可以从它们之间的WireShark日志中发现的唯一区别:< / p>
成功结果
失败的结果
我正在使用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)。
答案 0 :(得分:0)
Git使用libcurl进行HTTP连接。
我不知道库的任何运行时配置(它可能有),但您可能能够修改Git本身以强制它使用仅TLS连接。结帐http.c.用于此目的的libcurl函数应该是curl_easy_setopt,参数为CURLOPT_SSLVERSION,CURL_SSLVERSION_TLSv1。