如何仅为特定的回购设置GIT_SSL_NO_VERIFY?

时间:2012-01-25 18:40:59

标签: git ssl

我必须使用没有适当证书的git服务器,但我不想这样做

env GIT_SSL_NO_VERIFY=true git command

我每次都进行git操作。但我还想为其他git存储库启用SSL。有没有办法让这个本地单个回购?

12 个答案:

答案 0 :(得分:407)

你可以做到

git config http.sslVerify false

在您的特定仓库中,仅为该仓库禁用SSL证书检查。

答案 1 :(得分:91)

就像Thirumalai所说的那样,但是在克隆的存储库里面没有--global。即,

  1. GIT_SSL_NO_VERIFY=true git clone https://url
  2. cd <directory-of-the-clone>
  3. git config http.sslVerify false

答案 2 :(得分:85)

您可以执行以下操作

单个回购

git config http.sslVerify false

对于所有回购

git config --global http.sslVerify false

答案 3 :(得分:11)

如果您使用的是Windows计算机并安装了Git,则可以尝试以下步骤:

  1. 转到Git安装文件夹,例如:C:\ Program Files(x86)\ Git \ etc
  2. 编辑文件: gitconfig
  3. [http] 部分下,添加以下行: sslVerify = false

    [http]
      sslVerify = false
    

答案 4 :(得分:9)

特别是如果你需要递归克隆

GIT_SSL_NO_VERIFY=true git clone --recursive https://github.com/xx/xx.git

答案 5 :(得分:4)

如果您必须为托管多个存储库的一台git服务器禁用SSL检查,则可以运行:

git config --bool --get-urlmatch http.sslverify https://my.bad.server false

(如果您仍然使用git git config --global http.https://my.bad.server.sslVerify false)

命令末尾的documentation的说明,显示 .gitconfig内容如下:

[http "https://my.bad.server"]
        sslVerify = false

无论存储库如何,它将忽略对此服务器的所有证书检查。

您在the code

中也有一些解释

答案 6 :(得分:3)

有一种简单的方法可以配置GIT以正确的方式处理您的服务器。 只需为您的git服务器添加一个特定的http部分,并指定要信任的证书(Base64编码):

<强>〜/的.gitconfig

[http "https://repo.your-server.com"]
# windows path use double back slashes
#  sslCaInfo = C:\\Users\\<user>\\repo.your-server.com.cer
# unix path to certificate (Base64 encoded)
sslCaInfo = /home/<user>/repo.your-server.com.cer

这样您就不会再有SSL错误并验证(通常)自签名证书。这是最好的方法,因为它可以保护您免受中间人攻击。当您只是禁用ssl验证时,您很容易受到这类攻击。

https://git-scm.com/docs/git-config#git-config-httplturlgt

答案 7 :(得分:2)

这对我有用:

git init
git config --global http.sslVerify false
git clone https://myurl/myrepo.git

答案 8 :(得分:0)

对于windows,如果你想要全局配置,那么运行

git config --global http.sslVerify false

答案 9 :(得分:0)

在Linux上,如果你在git repository文件夹中调用它:

git config http.sslVerify false

这会在sslVerify = false文件夹中的[http]文件的config部分添加.git,如果您想手动添加此文件夹,这也可以作为解决方案与nano .git/config

...
[http]
  sslVerify = false

答案 10 :(得分:0)

这个问题不断出现,我还没有找到令人满意的结果,所以这是对我有用的(基于先前的答案https://stackoverflow.com/a/52706362/1806760,它不起作用):

我的服务器是https://gitlab.dev,带有自签名证书。

首先运行git config --system --edit(如果只想为用户使用,请从提升的命令提示符处,将--system更改为--global),然后在之前的{ {1}}节:

[http]

然后检查您是否正确完成了所有操作:

[http "https://gitlab.dev"]
        sslVerify = false

答案 11 :(得分:0)

还有一点,除了

git config --global http.sslVerify false

只需将 SSL 验证设置为 false ,您还必须拥有克隆存储库的密钥。像这样

git clone https://5edwerwe32434lcvghjjextragecj@github.airbus.corp/Airbus/MYX-SQL-Database.git"

5edwerwe32434lcvghjjextragecj是在settings/Developer settings/

下从github生成的token