Comment configurer SSL sur le serveur Jenkins
Il est très important de sécuriser Jenkins en activant SSL qui s’exécute dans un environnement de projet. Cet article vous guide étape par étape pour configurer SSL sur un serveur Jenkins.
Voici les étapes à suivre pour configurer SSL sur le serveur Jenkins.
- Obtenir des certificats SSL
- Convertir les clés SSL au format PKCS12
- Convertir PKCS12 au format JKS
- Ajouter JKS au chemin Jenkins
- Configurer le démarrage de Jenkins pour utiliser le fichier JKS.
- Validez le SSL Jenkins
Commençons par la configuration
Étape 1 : Obtenir le domaine &Certificats SSL
Vous devez avoir un domaine valide pointant vers l’IP du serveur Jenkins pour configurer SSL. Le domaine peut être interne ou externe en fonction de l’infrastructure de votre organisation.
Le certificat SSL peut être obtenu en utilisant les méthodes suivantes.
- Dans la plupart des cas, vous aurez Jenkins dans un environnement privé avec un DNS interne et vous pourrez obtenir les certificats SSL internes des organisations respectives.
- Vous pouvez également créer des certificats SSL auto-signés à l’aide d’OpenSSL. Suivez ce blog, générez des certificats SSL pour créer des certificats auto-signés à l’aide d’OpenSSL.
- De plus, vous pouvez utiliser des services comme let’s encrypt pour des certificats SSL valides. Mais ces certificats doivent être renouvelés tous les trois mois.
Étape 2: Convertissez les clés SSL au format PKCS12
Remarque: Si vous avez déjà le certificat au format
.p12
ou.pfx
, vous n’avez pas à effectuer cette conversion.
La commande ci-dessous convertit les certificats SSL au format PKCS12 intermédiaire nommé jenkins.p12
. Assurez-vous d’avoir les certificats suivants avec vous avant d’exécuter la commande.
- ca.serveur crt
- .clé
- serveur.crt
Aussi,
- Remplacez
jenkins.devopscube.com
dans la commande avec votre propre nom d’alias - Remplacez
your-strong-password
par un mot de passe fort.
openssl pkcs12 -export -out jenkins.p12 \-passout 'pass:your-strong-password' -inkey server.key \-in server.crt -certfile ca.crt -name jenkins.devopscube.com
Étape 3: Convertir PKCS12 au format JKS
Utilisez la commande keytool suivante pour convertir le fichier jenkins.p12
au format JKS.
Remplacez ce qui suit par vos propres valeurs.
-
-srcstorepass
– Mot de passe utilisé à l’étape 3 -deststorepass
– Remplacer par un mot de passe fort.-
-srcalias
– nom d’alias utilisé à l’étape 2 -
-destalias
– – Remplacer par un nom d’alias de destination.
keytool -importkeystore -srckeystore jenkins.p12 \-srcstorepass 'your-secret-password' -srcstoretype PKCS12 \-srcalias jenkins.devopscube.com -deststoretype JKS \-destkeystore jenkins.jks -deststorepass 'your-secret-password' \-destalias jenkins.devopscube.com
Vous devriez voir un fichier nommé jenkins.jks
dans votre emplacement actuel.
Étape 4: Ajoutez JKS au chemin Jenkins
jenkins_keystore.jks
le fichier doit être enregistré à un emplacement spécifique où Jenkins peut y accéder.
Créons un dossier et déplaçons la clé jenkins_keystore.jks
à cet emplacement.
mkdir -p /etc/jenkinscp jenkins_keystore.jks /etc/jenkins/
Modifiez les autorisations des clés et du dossier.
chown -R jenkins: /etc/jenkinschmod 700 /etc/jenkinschmod 600 /etc/jenkins/jenkins.jks
Étape 5: Modifiez la configuration de Jenkins pour SSL
Toutes les configurations de démarrage Jenkins clés sont présentes dans le fichier /etc/sysconfig/jenkins
. Toutes les configurations basées sur SSL vont dans ce fichier.
Ouvrez le fichier
sudo vi /etc/sysconfig/jenkins
Recherchez et remplacez les valeurs dans le fichier comme indiqué ci-dessous.
Remarque: Remplacez
your-keystore-password
par le mot de passe du magasin de clés, que vous avez défini à l’étape 3
JENKINS_PORT="-1"JENKINS_HTTPS_PORT="8443"JENKINS_HTTPS_KEYSTORE="/etc/jenkins/jenkins.jks"JENKINS_HTTPS_KEYSTORE_PASSWORD="<your-keystore-password>"JENKINS_HTTPS_LISTEN_ADDRESS="0.0.0.0"
Enregistrez la configuration et redémarrez Jenkins.
sudo systemctl restart jenkins
Vérifiez l’état de Jenkins.
sudo systemctl status jenkins
Étape 6: Validez SSL
Maintenant, vous devriez pouvoir accéder à Jenkins via https avec le port 8443
https://<jenkins-dns/ip>:8443
Vous pouvez également utiliser curl pour vérifier SSL
curl -k https://<jenkins-dns/ip>:8443
- Plus