我是与 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/