git - Visual Studio 2017 Enterprise + TFS 2018 + Git Clone = 无法获取本地颁发者证书

标签 git tfs visual-studio-2017 ssl-certificate

我是与 Git 交互的新手,我正在尝试将其与 TFS 基础设施结合起来,但遇到了 SSL 身份验证问题。没有 Github,没有 VSTS。 TFS 是本地的,因此是本地安装。

服务器部分:

我已在 Windows Server 2016 上安装了 TFS 2018,并创建了企业自签名证书,并将 TFS Web 服务(IIS 管理器)绑定(bind)到该证书上。

TFS 配置为仅通过 HTTPS 运行。 HTTP 被重定向到 HTTPS。 我已经设置了一个使用 Git 作为版本控制系统的新项目。

客户端部分:

我有两种 Windows 客户端。 Windows 7 SP1 和 10 周年更新,两者都带有 Visual Studio 2017 Enterprise。

我安装了证书(作为受信任的根证书颁发机构)并通过浏览器连接,但我无法查看项目信息。 没有浏览器会发出有关证书真实性的任何类型的警报。 然后,我使用 Windows 安全通道库安装了 Git-2.15.1.2-64-bit.exe。

我关注了这个guide配置 Git 客户端,因为我收到了 fatal error 。 所以基本上我提取了自签名的内容并将其附加到 ca-bundle.crt 文件中。 所有这些:

  • C:/Program Files/Git/mingw64/ssl/certs/
  • C:\users\myname(按照指南所述创建为全局名称)
  • C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\ssl\certs(这是由 Visual Studio 2017 安装创建的)

当我通过 Powershell “git config --list --show-origin” 命令使用时,我看到列出: 文件:“C:\Program Files\Git\mingw64/etc/gifconfig” http.sslcainfo = C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt 文件:“C:/users/myname/.gifconfig”http.sslcainfo = C:/users/myname/ca-bundle.crt

如果我尝试从 VS2017 Team Explorer 面板克隆存储库,它会一直显示: “Git 因 fatal error 而失败。 致命:无法访问'https://tfs.blahblah/ ': SSL 证书问题:无法获取本地颁发者证书"

但是当我使用 Git GUI 时,它会回答不同的错误: 致命:找不到远程引用 HEAD 据我所知,这看起来很合理,因为没有附加任何提交。

但如果我无法与 Visual Studio 2017“配对”,我就无法提交任何内容。

我浏览了几个链接,但无法通过。因此,在将其标记为重复之前,我请您注意我的具体系统/环境要求。

注意:请不要建议我关闭 SSL,因为正如已经讨论过的,它不是公司/企业环境中的解决方案

最佳答案

这是我解决问题的方法:

在团队资源管理器的 Git 设置、全局设置中,有一个选项可以在 OpenSSL 和安全通道之间进行选择。

从 Visual Studio 2017(版本 15.7 预览版 3)开始,在 Git 全局设置中使用 SChannel 解决了我的问题。

关于git - Visual Studio 2017 Enterprise + TFS 2018 + Git Clone = 无法获取本地颁发者证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47656326/

相关文章:

git - 将 git flow 与 git 子树一起使用

c# - Edmx 文件不在 TFS 源代码控制 VS2012 之下

c# - 无法加载文件或程序集 System.Runtime

c# - 在 DateTimePicker 中使用特定字体截断第一个数字

asp.net-core - 如何更新 Microsoft.AspNetCore?

git - 在 GitHub 上创建远程分支

git - 通过openssh从git Windows服务器克隆

linux - 在 OSX 上与 git 一起使用时,lesskey 配置不会被 less pager 使用

tfs - .csproj 文件未 checkin TFS

powershell - 构建完成后,TFS 2015 不再将内部版本号添加到全局列表中?