Jenkinsからジョブを作成しているときに、次のエラーが表示されます。 Jenkinsで証明書の検証を無効にするにはどうすればよいですか?
Git Bashからgit config --global http.sslVerify false
コマンドを使用して無効にできますが、Jenkinsからの使用方法はわかりません。
エラー:
Failed to connect to repository : Command "C:\Program Files (x86)\Git\cmd\git.exe ls-remote -h url ofmy repository.git HEAD" returned status code 128:
stdout:
stderr: fatal: unable to access 'url of my git/': SSL certificate problem: self signed certificate in certificate chain
最良のオプションは、自己署名証明書を証明書ストアに追加することです
サーバー証明書ツリーを取得するこれは、chromeを使用して実行できます。
サーバーアドレスに移動します。南京錠のアイコンをクリックして、証明書を表示します。すべての証明書チェーンをbase64エンコードファイル(PEM)形式としてエクスポートします。
GIT信頼設定ファイルの信頼チェーンに証明書を追加します。ジョブを実行しているマシンでGit bashで次を実行します。
「git config --list」。
http.sslcainfo
構成を見つけます。これは、証明書信頼ファイルの場所を示しています。 3. "- -BEGIN- -"
および"- -END- -"
を含むすべての証明書を信頼チェーンファイルにコピーします。ルート証明書チェーンを証明書ファイルに追加してください
これにより、自己署名証明書とGITの使用に関する問題が解決されます。
推奨しません
もう1つの方法は、スレーブにリモート接続し、次を実行することです。
git config --global http.sslVerify false
これにより、このインスタンスがSSL検証を行わないことをグローバル構成に保存します。これは推奨されません。テスト時にのみ使用し、再度無効にする必要があります。上記のように適切に行う必要があります。
JGitを使用し、次の行で。gitconfigファイルをJENKINS_HOMEに作成することで修正できます。
[http]
sslVerify = false
フリースタイルプロジェクトを作成し、「Windows Batch Command」を追加して、
git config http.sslVerify falseまたはgit config --config http.sslVerify false
これが完了したら、保存してジョブをビルドします
これで、ジェンキンは、SSL検証を実行しないように設定されました。ビルドが成功したら、バッチコマンドビルドステップを削除して、構成用に同じプロジェクトを編集できます。
補足するために、私は数時間これに固執しました、これはSSL関連で見つけたものです
加える
-Dorg.jenkinsci.plugins.getclient.GitClient.untrustedSSL=true
パラメーターとしてJava jnlpコマンド、
環境変数としてGIT_SSL_NO_VERIFY = trueを設定するため、スレーブ側のstart slaveコマンドは次のようになります(一部のパラメーターが重複しているかどうかはわかりません)
export GIT_SSL_NO_VERIFY=true
Java -Dorg.jenkinsci.plugins.getclient.GitClient.untrustedSSL=true -jar slave.jar -jnlpUrl ${jenkins_url}/computer/${slave_name}/slave-agent.jnlp -secret ${secret} -noCertificateCheck
同じものが必要かもしれません
-noCertificateCheck
jenkins-cli.jarを呼び出そうとしているとき
(最大 https://blog.csdn.net/froghui/article/details/39641221 )
jenkinsスレーブがgit操作を開始するたびに、jenkins gitプラグインによって処理されるクリーンな環境になります。
ログインするか、jenkinsユーザーに切り替えます。切り替えを行うには、端末で次のコマンドを実行します。
su - jenkins
そして、実行します
git config --global http.sslVerify false
同じ問題がありました。最初に、クローンまたはプルの前にSSL検証を無効にするシェルスクリプトを使用してGitを使用しました。
その後、私は代わりにJGitを使用するように切り替えました。ただし、JGitでは、浅いクローンなどの一部の機能はサポートされていません。
JGitを使用するために何もインストールする必要はありませんでした