VS2022 Git UI操作GitLab分支遇证书信任错误求助
解决VS2022 Git UI访问GitLab的证书信任错误
问题场景
在VS2022的Git UI中推送或拉取GitLab远程功能分支时,输出窗口弹出以下错误:
Git failed with a fatal error.
unable to access '':
schannel: CertGetCertificateChain trust error CERT_TRUST_IS_UNTRUSTED_ROOT
已尝试执行全局Git配置命令但无效果:
git config --global http."<my gitlab server url>".sslCAInfo C:/path/to/cert.pem
仅VS2022的Git UI操作会触发该错误,使用Git Bash或PowerShell终端操作则完全正常。
解决方案
1. 确认VS2022使用的Git路径
VS2022可能自带独立的Git实例,而非系统全局Git,这会导致全局配置不生效:
- 打开VS2022,依次点击「工具」→「选项」→「源代码管理」→「Git全局设置」
- 查看「Git可执行文件路径」,示例路径:
C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\cmd\git.exe
2. 给VS2022集成的Git单独配置证书
针对VS2022使用的Git实例,直接在仓库本地配置证书:
- 打开VS2022的「终端」面板,切换到当前仓库目录
- 执行本地配置命令(替换为你的GitLab地址和证书路径):
git config http."<my gitlab server url>".sslCAInfo C:/path/to/cert.pem
或者手动修改仓库根目录下的 .git/config 文件,添加以下内容:
[http "<my gitlab server url>"] sslCAInfo = C:/path/to/cert.pem
3. 将GitLab根证书导入Windows系统证书存储
VS2022的Git UI可能依赖Windows系统的证书信任链,而非Git的sslCAInfo配置:
- 打开GitLab网站,点击地址栏的锁图标→「查看证书」→「证书路径」标签
- 选择最顶层的根证书,点击「查看证书」→「详细信息」标签→「复制到文件」
- 按向导导出为「Base-64编码的X.509 (.CER)」格式,保存到本地
- 双击导出的CER文件,点击「安装证书」→选择「本地计算机」→「将所有证书放入下列存储」→「浏览」→选择「受信任的根证书颁发机构」→完成导入
4. 强制VS2022使用系统全局Git
如果上述方法无效,可让VS2022使用终端中正常工作的Git版本:
- 回到VS2022的「Git全局设置」页面,点击「浏览」选择系统全局Git的路径(示例:
C:\Program Files\Git\cmd\git.exe) - 重启VS2022后测试推送/拉取操作
内容的提问来源于stack exchange,提问作者lingeringame
相关产品推荐
相关产品推荐

