如何在GIT命令中指定CAFile路径?

8

我正在尝试通过https克隆一个代码库,但是出现了以下问题:即使我的本地配置文件指定了CAFile的位置,它仍然尝试使用全局配置文件中的值。

本地配置文件:

[http]
    sslCAInfo = c:/../cacert-client.pem

全局配置:
[http]
    sslCAinfo = /bin/curl-ca-bundle.crt

当我执行克隆命令时,我发现它尝试使用全局CAFile值而不是本地值。

如何在git克隆命令中内联指定http.sslCAinfo?

2个回答

10

c:/your/path/to/cacert-client.pem应该可以工作,假设你问题中的'/../'代表your/path/to(否则c:/../xx指向不存在的路径)。

如果它不起作用,您可以尝试另一种语法:

git config http.sslCAinfo /c/your/path/to/cacert-client.pem

你也可以设置 GIT_CURL_VERBOSE 为 1,以查看 git 正在使用的更多信息。

通过 git config 或环境变量 GIT_SSL_CAINFO 来正确获取该路径,比选用 GIT_SSL_NO_VERIFY=truegit config --global http.sslVerify false 更好。


1
GIT_SSL_CAINFO 就是我一直在寻找的。谢谢!其他选项对我来说都不起作用,因为 Git 拒绝了 HTTP 请求,而修改全局配置可能会破坏与另一个 Git 服务器连接的其他存储库。设置本地值(git config --local http....)没有任何影响。GIT_CURL_VERBOSE 显示使用了全局值。 - Mando

0

在克隆成功后(使用 GIT_SSL_CAINFO),您可以使用 git config http.sslCAInfo <cert-bundle> 来设置本地存储库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接