如何在git中配置多个CA证书?

时间:2018-04-19 11:03:26

标签: git ssl-certificate self-signed ca

我目前的情况是需要为我们的内部私有gitlab安装配置(自生成)RootCA.crt。

与此同时,我们仍然需要"正常"访问github.com。

因此我需要两个CA设置同时工作。

我的git config --global --edit看起来像这样

[user]
        name = my name
        email = my email
[core]
        autocrlf = false
        excludesfile = C:\\Users\\<user>\\Documents\\gitignore_global.txt
[filter "lfs"]
        clean = git-lfs clean -- %f
        smudge = git-lfs smudge -- %f
        process = git-lfs filter-process
        required = true
[mergetool "sourcetree"]
        cmd = 'C:/Program Files/KDiff3/kdiff3.exe' \"$BASE\" \"$LOCAL\" \"$REMOTE\" -o \"$MERGED\"
        trustExitCode = true
[winUpdater]
        recentlySeenVersion = 2.17.0.windows.1
[credential]
        helper = store
[http "https://our.gitlab.server*"]
        sslVerify = true
        sslCAInfo = C:/ssl/RootCA.crt
        sslCAPath = C:/ssl
[http "https://github.com*"]
        sslCAInfo = C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
        sslCAPath = C:/Program Files/Git/mingw64/ssl/certs
        sslVerify = true

因此,您可以看到我配置了两个http条目,一个用于本地服务器,另一个用于github。 (如documentation中所示)

如果我只是一次设置一个

[http]
     sslCAInfo = C:/ssl/RootCA.crt
     sslCAPath = C:/ssl/
     sslVerify  = true

相应的回购工作正常。

但是在使用上部配置的那一刻,它始终没有显示任何内容:

$ git config --get-all http.sslCAInfo
(nothing)


如何根据存储库网址使用不同的CA证书获取这两种配置才能正常工作?

1 个答案:

答案 0 :(得分:0)

作为一种工作场所,我打开了默认设置 C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt和我的C:/ssl/RootCA.crt在文本编辑器中,并将我的CA证书的内容附加到捆绑包中,因此它现在包含所有证书。

无论如何,我希望有更好的方法来实现它,因为现在每个人都必须在所有Git安装上替换该文件。