特定のリポジトリのみにGIT_SSL_NO_VERIFYを設定するにはどうすればよいですか?


283

適切な証明書なしでgitサーバーを使用する必要がありますが、実行する必要はありません

env GIT_SSL_NO_VERIFY=true git command

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



f15ijp.com/2012/08/… 私が見つけた最高のソリューションの1つ
vikas etagi

回答:


540

できるよ

git config http.sslVerify false

特定のリポジトリでSSL証明書のチェックを無効にして、そのリポジトリのみをチェックします。


54
git config --global http.sslVerify "false"
roothahn '26 / 07/26

24
--globalは、OPが特定のリポジトリに対してのみ必要とすることを明確に要求しているため、使用しないでください。
Kannan Ekanath 2017

9
注:--globalリポジトリがまだチェックアウトされていない場合は、オプションが必要であるようです(ローカルにまだ存在しないリポジトリのオプションは設定できません)。後でいつでもオンに戻すことができます。
James Wilkins、

2
質問は特にこれを要求しなかったため、編集をロールバックしました。セキュリティ上の理由から、これをグローバルに無効にすることは悪い考えです。
エティエンヌ

2
上記と同じ理由で、編集を再度ロールバックしました。この質問は特定のレポについてです。すべてのリポジトリの回答が必要な場合は、別の質問にする必要があります。
Calimo

121

次のようにすることができます

単一のリポジトリの場合

git config http.sslVerify false

すべてのリポジトリ

git config --global http.sslVerify false

7
これにより、すべてのリポジトリのSSL検証が無効になります。最初の質問は、単一のリポジトリに対してローカルにすることでした。
Gwynne Raskind 2013

4
なぜ世界でsudoを使用しているのですか?ローカルリポジトリはそれを必要とせず、ユーザー設定は$ HOME(システムにあるものは何でも)にあるので、sudoも必要ありません。
mcepl 2015

@ParthianShot彼らが管理者ユーザーでない場合、sudoなしでこれをどのように使用できますか?
Thirumalai murugan 2016

1
@Thirumalaimuruganあなたは今真剣ですか?sudo実際にrootが何かをする必要がある場合にのみ使用してください。新しいソフトウェアのインストール、重要なシステムファイルの変更、ドライブの再フォーマット、ネットワークの再構成、サービスの管理などのように、この人の質問には、何でもするためにrootが必要であることを暗示するものは何もありませんでした。あなたが管理者である場合、ほとんどのコマンド(構成を変更するコマンドを含む)を、ほとんどの場合sudoなしで実行する必要があります。
パルティアンショット

1
@ HolaSoyEduFelizNavidad、OPが「すべてのリポジトリ用」と言ったとき、OPは「このユーザーのすべてのリポジトリ」ではなく「コンピュータ上のすべてのリポジトリ」を意味していました。
vy32

98

ティルマライが言ったように、クローンされたリポジトリの内部となし--global。つまり、

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

次の場合に適した解決策could not lock global config file .gitconfig: Permission denied
antongorodezkiy 2015

1
.gitconfigでアクセス許可が拒否されている場合、システムで深刻な問題が発生しています。$ HOMEが利用可能である必要があります(.gitconfigがあるはずです)。
mcepl 2015

これは実際には私のサーバーではありません。とにかくありがとう。エラーメッセージからパスを削除しましたが、実際にはそのサーバーでgitが.gitconfigのどこかにアクセスしようとしています/var/www/...
antongorodezkiy

この回答には、オプションに関するいくつかの素晴らしい説明もあります。stackoverflow.com/a/11622001
dragon788

2
輸出GIT_SSL_NO_VERIFY =真
ETech

11

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

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

10

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

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

    [http]
      sslVerify = false
    

1
これはまた、他のリポジトリに影響を与えたくないと彼が言っている上記の質問を満たしていません。
bryanmac

そして、gitコマンドを実行できない場合に非常に役立ちます。(Windows仮想マシンにsourcetreeがあり、組み込みのsortreeツリーターミナルが認識できないUNCパスにsrcフォルダーを配置するig
danrah

1
thx、これは機能しましたが、どういうわけかコマンドラインの修正が機能していませんでした。
Nrj 2016年

TortoiseGitユーザーの場合、コンテキスト固有の設定の更新を行い、ローカルのみを編集するオプションを選択することで、このセクションをローカル構成ファイルに編集できます
Steve Townsend

5

サーバーを正しく処理するように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


5

複数のリポジトリをホストしている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

リポジトリに関係なく、このサーバーの証明書チェックは無視されます。

コードにもいくつかの説明があります


4

これは私にとってはうまくいきます:

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

2

この質問は増え続け、満足のいく結果がまだ見つからなかったので、これが私のために働いたものです(以前の回答https://stackoverflow.com/a/52706362/1806760に基づいており、機能していません):

私のサーバーには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

Windowsの場合、グローバル構成が必要な場合は実行します

git config --global http.sslVerify false

OPはを求めspecific repos明示
malat

0

Linuxでは、これをgitリポジトリフォルダー内で呼び出すと、次のようになります。

git config http.sslVerify false

これは、フォルダー内のファイルsslVerify = false[http]セクションに追加されます。これを手動で追加する場合は、これも解決策になります。config.gitnano .git/config

...
[http]
  sslVerify = false
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.