私は適切な証明書なしでgitサーバーを使わなければなりません、しかし私はする必要はありません
env GIT_SSL_NO_VERIFY=true git command
毎回git操作をします。しかし、私は他のgitリポジトリに対してもSSLを有効にしておきたいと思います。このレポジトリを単一のレポにローカルにする方法はありますか?
できるよ
git config http.sslVerify false
そのレポのSSL証明書チェックのみを無効にするには、あなたの特定のレポで。
Thirumalaiが言ったのと同じですが、クローン化されたリポジトリの中で、--global
がありません。すなわち、
GIT_SSL_NO_VERIFY=true git clone https://url
cd <directory-of-the-clone>
git config http.sslVerify false
あなたは次のようにすることができます
シングルレポの場合
git config http.sslVerify false
すべてのレポ用
git config --global http.sslVerify false
Windowsマシンを使用していてGitがインストールされている場合は、以下の手順を試すことができます。
[http] セクションの下に、次の行を追加します。 sslVerify = false
[http]
sslVerify = false
特に再帰的クローンが必要な場合
GIT_SSL_NO_VERIFY=true git clone --recursive https://github.com/xx/xx.git
複数のリポジトリをホストしている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
リポジトリがどうであれ、このサーバーに対する証明書のチェックは無視されます。
これは私のために働く:
git init
git config --global http.sslVerify false
git clone https://myurl/myrepo.git
サーバーを適切な方法で処理するように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://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
Linuxでは、gitリポジトリフォルダ内でこれを呼び出すと、
git config http.sslVerify false
これはsslVerify = false
フォルダー内のconfig
ファイルの[http]
セクションに.git
を追加します。これをnano .git/config
を使用して手動で追加する場合は、これも解決策となる可能性があります。
...
[http]
sslVerify = false
windowsの場合は、グローバル設定が必要な場合は、次に実行します。
git config --global http.sslVerify false