Come configurare SSL sul server Jenkins
È molto importante proteggere Jenkins abilitando SSL che viene eseguito in un ambiente di progetto. Questo articolo ti guida attraverso la guida passo passo per la configurazione di SSL su un server Jenkins.
Di seguito sono riportati i passaggi necessari per configurare SSL sul server Jenkins.
- Ottenere certificati SSL
- Convertire le chiavi SSL in formato PKCS12
- Convertire PKCS12 in formato JKS
- Aggiungere JKS al percorso Jenkins
- Configurare l’avvio di Jenkins per utilizzare il file JKS.
- Convalida Jenkins SSL
Consente di iniziare con la configurazione
Passo 1: Ottenere dominio & Certificati SSL
Si dovrebbe avere un dominio valido che punta a Jenkins server IP per configurare SSL. Il dominio può essere interno o esterno in base all’infrastruttura aziendale.
Il certificato SSL può essere ottenuto utilizzando i seguenti metodi.
- Nella maggior parte dei casi, avrai Jenkins in un ambiente privato con un DNS interno e potrai ottenere i certificati SSL interni dalle rispettive organizzazioni.
- È anche possibile creare certificati SSL autofirmati utilizzando OpenSSL. Segui questo blog, genera certificati SSL per creare certificati autofirmati utilizzando OpenSSL.
- Inoltre, è possibile utilizzare i servizi come let’s encrypt per i certificati SSL validi. Ma questi certificati devono essere rinnovati ogni tre mesi.
Passaggio 2: Converti le chiavi SSL in formato PKCS12
Nota: Se hai già il certificato in formato
.p12
o.pfx
, non devi eseguire questa conversione.
Il comando riportato di seguito converte i certificati SSL in formato PKCS12 intermedio denominatojenkins.p12
. Assicurati di avere i seguenti certificati con te prima di eseguire il comando.
- ca.server crt
- .chiave
- server.crt
Inoltre,
- Sostituisci
jenkins.devopscube.com
nel comando con il tuo nome alias - Sostituisci
your-strong-password
con una password complessa.
openssl pkcs12 -export -out jenkins.p12 \-passout 'pass:your-strong-password' -inkey server.key \-in server.crt -certfile ca.crt -name jenkins.devopscube.com
Passo 3: Converti PKCS12 in formato JKS
Usa il seguente comando keytool per convertire il file jenkins.p12
in formato JKS.
Sostituisci quanto segue con i tuoi valori.
-
-srcstorepass
– Password utilizzata nel passaggio 3 -
-deststorepass
– Sostituire con una password complessa. -srcalias
– nome alias utilizzato nel passaggio 2-destalias
– Sostituire con un nome alias di destinazione.
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
Dovresti vedere un file chiamato jenkins.jks
nella tua posizione corrente.
Passo 4: Aggiungi JKS al percorso Jenkins
jenkins_keystore.jks
il file deve essere salvato in una posizione specifica in cui Jenkins può accedervi.
Creiamo una cartella e spostiamo il tastojenkins_keystore.jks
in quella posizione.
mkdir -p /etc/jenkinscp jenkins_keystore.jks /etc/jenkins/
Modifica le autorizzazioni delle chiavi e della cartella.
chown -R jenkins: /etc/jenkinschmod 700 /etc/jenkinschmod 600 /etc/jenkins/jenkins.jks
Passo 5: Modifica la configurazione di Jenkins per SSL
Tutte le configurazioni di avvio di Jenkins chiave sono presenti nel file /etc/sysconfig/jenkins
. Tutte le configurazioni basate su SSL vanno in questo file.
Apri il file
sudo vi /etc/sysconfig/jenkins
Trova e sostituisci i valori nel file come mostrato di seguito.
Nota: Sostituire
your-keystore-password
con la password del Keystore, creata nel passaggio 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"
Salvare la configurazione e riavviare Jenkins.
sudo systemctl restart jenkins
Controlla lo stato di Jenkins.
sudo systemctl status jenkins
Passaggio 6: Convalidare SSL
Ora si dovrebbe essere in grado di accedere Jenkins su https con porta 8443
https://<jenkins-dns/ip>:8443
È anche possibile utilizzare curl per verificare SSL
curl -k https://<jenkins-dns/ip>:8443
- Più