web-dev-qa-db-ja.com

特定のリポジトリに対してのみGIT_SSL_NO_VERIFYを設定する方法

私は適切な証明書なしでgitサーバーを使わなければなりません、しかし私はする必要はありません

env GIT_SSL_NO_VERIFY=true git command

毎回git操作をします。しかし、私は他のgitリポジトリに対してもSSLを有効にしておきたいと思います。このレポジトリを単一のレポにローカルにする方法はありますか?

222
Charles Randall

できるよ

git config http.sslVerify false

そのレポのSSL証明書チェックのみを無効にするには、あなたの特定のレポで。

403

Thirumalaiが言ったのと同じですが、クローン化されたリポジトリの中で、--globalがありません。すなわち、

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

あなたは次のようにすることができます

シングルレポの場合

git config http.sslVerify false

すべてのレポ用

git config --global http.sslVerify false
85

Windowsマシンを使用していてGitがインストールされている場合は、以下の手順を試すことができます。

  1. Gitインストールのフォルダに移動します。例:C:\ Program Files(x86)\ Git\etc
  2. ファイルを編集します。 gitconfig
  3. [http] セクションの下に、次の行を追加します。 sslVerify = false

    [http]
      sslVerify = false
    
11
shasi kanth

特に再帰的クローンが必要な場合

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

複数のリポジトリをホストしている1つのgitサーバーに対してSSLチェックを無効にする必要がある場合は、次のコマンドを実行します。

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

(それでもgit <v1.8.5を使っている場合はgit config --global http.https://my.bad.server.sslVerify falseを実行してください)

ドキュメンテーション からの説明コマンドが最後にあるところで、以下のように見える.gitconfigの内容を見せてください:

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

リポジトリがどうであれ、このサーバーに対する証明書のチェックは無視されます。

コードにも説明があります

3
Mat M

これは私のために働く:

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

サーバーを適切な方法で処理するように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

2
Matthias B

この質問が出続け、私はまだ満足のいく結果を見つけられなかったので、ここで私のために働いたものがあります(以前の回答に基づいて https://stackoverflow.com/a/52706362/180676 動かない):

私のサーバーは、自己署名証明書付きのhttps://gitlab.devです。

最初にgit config --system --editを実行します(昇格したコマンドプロンプトから、ユーザーだけにしたい場合は--system--globalに変更します)。次に、以前の[http]セクションの後に次のスニペットを挿入します。

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

次に、すべてを正しく行ったかどうかを確認します。

> git config --type=bool --get-urlmatch http.sslVerify https://gitlab.dev
false
1
mrexodia

Linuxでは、gitリポジトリフォルダ内でこれを呼び出すと、

git config http.sslVerify false

これはsslVerify = falseフォルダー内のconfigファイルの[http]セクションに.gitを追加します。これをnano .git/configを使用して手動で追加する場合は、これも解決策となる可能性があります。

...
[http]
  sslVerify = false
0
rubo77

windowsの場合は、グローバル設定が必要な場合は、次に実行します。

git config --global http.sslVerify false
0
176coding