我们在本地设置了一个新的 TFS 2017 服务器。我的系统管理员设置了 https 并生成了一个自签名证书。使用 Visual Studio 的内置 git 工具一切正常。当我尝试从 CLI 执行任何操作时,出现以下错误:SSL certificate problem: unable to get local issuer certificate
我尝试过的:
在我的客户端机器上的 Trusted Root Certificate Authorities 存储中安装了证书(它也安装在服务器上)。要安装它,我只需双击提供给我的 .pfx 文件,输入密码,然后选择 Trusted Root 存储。
经过一些故障排除后,我将本地证书导出为 Base-64 编码的 x.509 (.CER) 文件,并将其附加到 ca-bundle.crt
仔细检查我的 git 配置以确保 http.sslcainfo 指向正确的 ca-bundle.crt 文件。
使用 openssl 连接到我的服务器。这给了我两条错误消息:
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 OU = Created by Team Foundation Server, CN = my.company.com
verify error:num=21:unable to verify the first certificate
verify return:1
Certificate chain
0 s:/OU=Created by Team Foundation Server/CN=my.company.com
i:/OU=Created by Team Foundation Server/CN=my.company.com
尝试使用其他机器的 CLI 通过 https 连接,结果相同。
更新
Cec*_*SFT 11
您的问题似乎与 TFS 无关,但无法验证您的自签名证书。您可以在此处查看解决方案:
解决方法
告诉 git 不使用全局选项执行证书验证:
git config --global http.sslVerify false
Run Code Online (Sandbox Code Playgroud)
解析度
以前有几种方法可以解决此问题:
A.确保根证书添加到git.exe的证书存储区为讨论在这里。
B. 通过运行告诉 Git 在哪里可以找到 CA 包:
git config --system http.sslCAPath /absolute/path/to/git/certificates
Run Code Online (Sandbox Code Playgroud)
或者将 CA 包复制到 /bin 目录并将以下内容添加到 gitconfig 文件中:
sslCAinfo = /bin/curl-ca-bundle.crt
Run Code Online (Sandbox Code Playgroud)
C. 重新安装 Git。
D. 确保存在完整的 CA,包括根证书。
解决 SSL 问题后,您可以参考以下案例,以防您在命令行中遇到身份验证问题:
在 TFS 2017 中使用 Git - 在 Visual Studio 中工作但在命令行中不工作
| 归档时间: |
|
| 查看次数: |
17827 次 |
| 最近记录: |