適切な証明書なしでgitサーバーを使用する必要がありますが、実行する必要はありません
env GIT_SSL_NO_VERIFY=true git command
毎回git操作を実行します。しかし、他のgitリポジトリでもSSLを有効のままにしたいと思います。これを単一のリポジトリにローカルにする方法はありますか?
適切な証明書なしでgitサーバーを使用する必要がありますが、実行する必要はありません
env GIT_SSL_NO_VERIFY=true git command
毎回git操作を実行します。しかし、他のgitリポジトリでもSSLを有効のままにしたいと思います。これを単一のリポジトリにローカルにする方法はありますか?
回答:
できるよ
git config http.sslVerify false
特定のリポジトリでSSL証明書のチェックを無効にして、そのリポジトリのみをチェックします。
--global
リポジトリがまだチェックアウトされていない場合は、オプションが必要であるようです(ローカルにまだ存在しないリポジトリのオプションは設定できません)。後でいつでもオンに戻すことができます。
次のようにすることができます
単一のリポジトリの場合
git config http.sslVerify false
すべてのリポジトリ
git config --global http.sslVerify false
sudo
実際にrootが何かをする必要がある場合にのみ使用してください。新しいソフトウェアのインストール、重要なシステムファイルの変更、ドライブの再フォーマット、ネットワークの再構成、サービスの管理などのように、この人の質問には、何でもするためにrootが必要であることを暗示するものは何もありませんでした。あなたが管理者である場合、ほとんどのコマンド(構成を変更するコマンドを含む)を、ほとんどの場合sudoなしで実行する必要があります。
ティルマライが言ったように、クローンされたリポジトリの内部となし--global
。つまり、
GIT_SSL_NO_VERIFY=true git clone https://url
cd <directory-of-the-clone>
git config http.sslVerify false
could not lock global config file .gitconfig: Permission denied
/var/www/...
特に再帰的なクローンが必要な場合
GIT_SSL_NO_VERIFY=true git clone --recursive https://github.com/xx/xx.git
WindowsマシンでGitがインストールされている場合は、以下の手順を試すことができます。
[http]セクションの下に、次の行を追加します:sslVerify = false
[http]
sslVerify = false
サーバーを正しく処理するように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検証を無効にするだけで、この種の攻撃に対して脆弱になります。
複数のリポジトリをホストしている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
リポジトリに関係なく、このサーバーの証明書チェックは無視されます。
この質問は増え続け、満足のいく結果がまだ見つからなかったので、これが私のために働いたものです(以前の回答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