【问题标题】:Can I force git to use TLS only?我可以强制 git 只使用 TLS 吗?
【发布时间】:2012-07-03 12:10:55
【问题描述】:

当我在特定网络环境下使用 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 seemed had this problem 也是。但我找不到他们如何解决问题(并适用于 git )。

【问题讨论】:

    标签: git networking ssl


    【解决方案1】:

    Git 使用 libcurl 进行 HTTP 连接。

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

    【讨论】:

    • 这将是上述 http.c 中的函数“static CURL *get_curl_handle(void)”(现在 FWIW)
    猜你喜欢
    • 2018-11-25
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 2022-01-05
    相关资源
    最近更新 更多