Je reçois l'erreur ci-dessous lors de la création d'un travail de Jenkins. Comment désactiver la validation de certificat dans Jenkins?
De Git Bash, je peux utiliser la commande git config --global http.sslVerify false
pour le désactiver, mais je ne sais pas comment l'utiliser à partir de Jenkins.
Erreur:
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
La meilleure option consiste à ajouter le certificat auto-signé à votre magasin de certificats.
Obtenir l'arborescence de certificats du serveur Cela peut être fait en utilisant chrome.
Naviguez pour être l'adresse du serveur. Cliquez sur l'icône du cadenas et affichez les certificats. Exportez toute la chaîne de certificats au format PEM (Encodage Base64).
Ajoutez les certificats à la chaîne de confiance de votre fichier de configuration de confiance GITIn Git bash sur la machine exécutant le travail exécute les opérations suivantes:
"git config --list".
trouvez la configuration http.sslcainfo
qui indique où se trouve le fichier d’approbation du certificat. 3. Copiez tous les certificats dans le fichier de chaîne de confiance, y compris le "- -BEGIN- -"
et le "- -END- -"
. Assurez-vous d’ajouter la chaîne de certificats ROOT au fichier de certificats.
Cela devrait résoudre votre problème avec les certificats auto-signés et l’utilisation de GIT.
NON RECOMMANDÉ
L’autre méthode consiste à télécommander votre esclave et à exécuter les opérations suivantes:
git config --global http.sslVerify false
Cela évitera dans la configuration globale que cette instance ne fasse jamais de vérification SSL, cela n'est PAS recommandé, il devrait être utilisé uniquement lors des tests, puis désactivé à nouveau. Cela devrait être fait correctement comme ci-dessus.
Vous pouvez utiliser JGit et le réparer en créant un fichier .gitconfig dans JENKINS_HOME avec ces lignes:
[http]
sslVerify = false
Créez un projet Freestyle et ajoutez "Windows Batch Command" et ajoutez le
git config http.sslVerify false ou git config --config http.sslVerify false
Une fois que cela est fait, enregistrez-le et créez le travail.
Maintenant, votre jenkin est configuré pour ne pas effectuer de vérification SSL. Après la création réussie maintenant, vous pouvez supprimer l’étape de construction de la commande batch et éditer le même projet pour votre configuration.
pour compléter, je suis bloqué sur cela pendant quelques heures, voici ce que j'ai trouvé pour SSL
ajouter
-Dorg.jenkinsci.plugins.getclient.GitClient.untrustedSSL=true
en paramètre en tant que commande Java jnlp,
et pour définir GIT_SSL_NO_VERIFY = true en tant que variable d'environnement, de sorte que la commande de démarrage esclave du côté esclave ressemble maintenant à (ne sais pas si certains paramètres sont dupliqués)
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
vous aurez peut-être besoin de la même chose
-noCertificateCheck
en essayant d'appeler jenkins-cli.jar
(jusqu'à https://blog.csdn.net/froghui/article/details/39641221 )
depuis que l'esclave jenkins a initié une opération git, c'est un environnement propre, géré par le plugin jenkins git
J'ai eu le même problème. J'ai d'abord utilisé Git avec un script shell qui désactivait la vérification SSL avant le clonage ou l'extraction.
Plus tard, je suis passé à JGit, qui fonctionne comme prévu (bien que ce ne soit pas recommandé). Cependant, avec JGit, certaines fonctionnalités telles que les clones superficiels ne sont pas prises en charge.
Afair je n'ai rien eu à installer pour utiliser JGit