使用TortoiseGit创建git clone时出现SSL证书问题

时间:2013-06-14 10:02:18

标签: git ssl ssl-certificate tortoisegit

我想在TortoiseGit的帮助下克隆git存储库,但是我收到了错误:

错误:SSL证书问题,验证CA证书是否正常。细节: 错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:访问https://git.assembla.com/pplconnect-PL.webserver.git/info/refs?service=git-upload-pack时证书验证失败 致命:HTTP请求失败

git没有干净地退出(退出代码128)。

任何帮助或指导都将受到赞赏。

Screenshot

7 个答案:

答案 0 :(得分:19)

您可以选择忽略服务器证书(风险自负!)。

按以下方式配置TortoiseGit。首先打开TortoiseGit设置。

然后:

  1. 选择Git配置
  2. 按" Edit systemwide gitconfig"
  3. 打开全局git配置
  4. [http]部分写道:
  5.   

    [HTTP]
         sslVerify = false

答案 1 :(得分:13)

配置git以使用正确的根证书。获取服务器的根CA证书并将其添加到git config。在命令提示符下运行它(不要忘记进入你的git仓库)

git config http.sslCAinfo ~/certs/cacert.pem

您可以选择忽略服务器证书(风险自负!)。

git config http.sslVerify false

安全警告:这对中间人攻击很敏感。在禁用SSL证书验证之前,请确保此安全问题不是您的问题。

答案 2 :(得分:4)

所有最重要的答案都是非常危险的! 请勿全局禁用SSL验证!

相反,请使用出色的答案in another thread,并有选择地允许特定站点使用自签名证书。

编辑全局.gitconfig文件以包含

[http "https://example.com"]
    sslCAInfo = C:\\Users\\<username>\\Documents\\ssl\\example.com.crt

CRT文件本身可以通过多种方式获得。您可以只使用Firefox保存它,将其存储在安全的地方,然后将配置指向它。

答案 3 :(得分:2)

请检查您的Git for Windows安装是否正确。

正如你在屏幕截图中看到的,git.exe找不到模板目录 - 所以我想git.exe也找不到发货的CA证书。

如果这没有帮助,请参阅说明here,以便将证书包含在Git信任存储区中。

答案 4 :(得分:1)

尽管出于许多原因禁用ssl验证被认为是危险的,但有时这是可行的。其他人指出,至少要使用“本地”禁用功能,而不是如何使用。作为记录,这是如何在全局.gitconfig文件(在Windows中位于c:\Users\username下)中定义单个存储库使用openssl并禁用检查。只需添加以下(调整后的)行:

[http "https://your.repo.com"]
 sslBackend = openssl
 sslVerify = false

对我来说,这很完美。 如FRob的答案所述,here is a more nuanced option中使用了pem证书,您经常可以自己下载该证书,例如,在网址中单击浏览器中的锁定符号并单击“其他信息”时(Firefox,其他应该相似)。

答案 5 :(得分:1)

正确的解决方法很简单;告诉 git 使用 Windows 证书存储。 这由 git version >=2.14 支持(不确定与哪个 Tortoise 版本相关)

遗憾的是,我没有在 Tortoise GUI 设置中看到配置此功能的方法。

程序:
1:
找到git所在的文件夹(用于安装Tortoise git) TortoiseGit -> Settings -> General Git.exe path = (e.g.) C:\Program Files\git\bin

2:
在资源管理器中在资源管理器中浏览此文件夹 Shift 右键单击​​“此处的命令提示符”

3:
输入以下git配置命令

git config --global http.sslBackend schannel

像往常一样在 Windows 证书存储中安装您的自签名证书链。

答案 6 :(得分:-3)

打开Git CMD并运行以下命令。

git config --global http.sslVerify false