如何配置Git以信任来自Windows证书存储区的证书?

时间:2013-05-21 11:07:38

标签: windows git ssl-certificate certificate-store

目前,我的用户目录.gitconfig中有以下条目。

...
[http]
    sslCAInfo=C:\\Users\\julian.lettner\\.ssh\\git-test.pem
...

设置与git服务器交互时使用的证书(我公司的git服务器需要)。

但现在我无法克隆其他存储库(例如GitHub上的公共存储库),因为客户端始终使用已被其他服务器拒绝的已配置证书。

如何规避此认证问题?我可以配置Git以使用Windows证书存储区进行身份验证吗?

2 个答案:

答案 0 :(得分:57)

从Git for Windows 2.14开始,您现在可以将Git配置为使用内置Windows网络层SChannel。这意味着它将使用Windows证书存储机制,而需要显式配置curl CA存储机制。

来自Git for Windows 2.14 release notes

  

现在可以通过将http.sslBackend配置变量设置为"openssl""schannel"来在安全通道和OpenSSL之间切换Git的HTTPS传输;现在这也是安装程序使用的方法(而不是复制libcurl-4.dll文件)。

您可以在安装Git for Windows 2.14期间选择新的SChannel机制。您还可以通过运行以下命令更新现有安装以使用SChannel:

git config --global http.sslBackend schannel

配置完成后,Git将使用Windows证书存储区,不应要求(实际上应该忽略)http.sslCAInfo配置设置。

答案 1 :(得分:4)

使用:

git config  --local ...

指定每个存储库设置。本地设置存储在.git目录中。

git可以存储设置的三个位置的概述:

  • --local:特定于存储库,<repo_dir>/.git/config
  • --global:用户特定的~/.gitconfig
  • --system:系统默认值/etc/gitconfig

更具体的覆盖更多常规设置,即全局和系统的本地覆盖。