Page:
Mettre à jour les certificats du keystore Jenkins
Pages
Ajouter un noeud d'exécution à Jenkins
Construire et publier une image Docker
Créer un pipeline Jenkins pour son projet
Home
Lancer un exécuteur Jenkins sur sa machine
Mettre à jour les certificats du keystore Jenkins
Mettre à jour Jenkins
Nettoyer la liste des jobs en attente
Redémarrer Jenkins
Redimensionner le disque d'une machine "worker"
Remonter un nouveau Jenkins sur l'OpenNebula
Sauvegarder et restaurer Jenkins avec ThinBackup, restic et rclone
Sauvegarder Jenkins avec Restic/RClone
Utiliser le pipeline "Symfony"
3
Mettre à jour les certificats du keystore Jenkins
wpetit edited this page 2021-02-22 15:53:44 +01:00
Table of Contents
Mettre à jour les certificats du keystore Jenkins
D'autres erreurs liées aux certificats LetsEncrypt peuvent intervenir à différents niveaux. Un autre endroit à vérifier en priorité est l'environnement de build de Tamarin
Dans un pipeline, si des erreurs de ce type apparaissent:
Attempting to resolve master from remote references...
> git --version # timeout=10
> git --version # 'git version 2.18.4'
using GIT_ASKPASS to set credentials Identifiants Jenkins Forge
> git ls-remote -h -- https://forge.cadoles.com/Cadoles/Jenkins.git # timeout=10
ERROR: Checkout failed
hudson.plugins.git.GitException: Command "git ls-remote -h -- https://forge.cadoles.com/Cadoles/Jenkins.git" returned status code 128:
stdout:
stderr: fatal: unable to access 'https://forge.cadoles.com/Cadoles/Jenkins.git/': SSL certificate problem: certificate has expired
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2450)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:2051)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1951)
[...]
Il est fort probable que le keystore java n'ait pas le certificat de la forge à jour (ce qui est probable avec LetsEncrypt).
Dans ce cas:
-
Se connecter sur la machine Jenkins en SSH avec le compte
root
-
Si le script
/root/install-java-cert.sh
n'existe pas encore, le créer avec le contenu suivant:#!/bin/sh set -xe DOMAIN=$1 JENKINS_HOME=/var/lib/jenkins JAVA_HOME=/usr/lib/jvm/default-jvm if [ -z "$DOMAIN" ]; then echo "You must specify the domain as first argument" exit 1 fi # Import certificate openssl s_client -showcerts -connect "$DOMAIN" < /dev/null 2> /dev/null | openssl x509 -outform PEM > ~/root_ca.pem # Duplicate Java Keystore file and move into Jenkins... mkdir -p $JENKINS_HOME/keystore/ cp $JAVA_HOME/jre/lib/security/cacerts $JENKINS_HOME/keystore/ # Add Certificate to Keystore keytool -import -alias $DOMAIN -keystore $JENKINS_HOME/keystore/cacerts -file ~/root_ca.pem # Add -Djavax.net.ssl.trustStore=$JENKINS_HOME/keystore/cacerts to the # Jenkins startup parameters. For Debian/Ubuntu, this is /etc/default/jenkins mkdir -p /etc/default echo 'JAVA_ARGS="$JAVA_ARGS -Djavax.net.ssl.trustStore=$JENKINS_HOME/keystore/cacerts"' >> /etc/default/jenkins rc-service jenkins restart
-
Lancer le script
/root/install-java-cert.sh forge.cadoles.com:443
. Le mot de passe par défaut du keystore estchangeit
.