Cómo configurar SSL en el servidor Jenkins
Es muy importante proteger Jenkins habilitando SSL que se ejecuta en un entorno de proyecto. Este artículo lo guía paso a paso para configurar SSL en un servidor Jenkins.
A continuación se indican los pasos necesarios para configurar SSL en el servidor Jenkins.
- Obtener certificados SSL
- Convertir claves SSL al formato PKCS12
- Convertir PKCS12 al formato JKS
- Agregar JKS a la ruta de Jenkins
- Configurar el inicio de Jenkins para usar el archivo JKS.
- Validar SSL de Jenkins
Vamos a empezar con la configuración
Paso 1: Obtener dominio& Certificados SSL
Debe tener un dominio válido que apunte a la IP del servidor Jenkins para configurar SSL. El dominio puede ser interno o externo en función de la infraestructura de su organización.
El certificado SSL se puede obtener utilizando los siguientes métodos.
- En la mayoría de los casos, tendrá Jenkins en un entorno privado con un DNS interno y podrá obtener los certificados SSL internos de las respectivas organizaciones.
- También puede crear certificados SSL autofirmados mediante OpenSSL. Siga este blog, genere certificados SSL para crear certificados autofirmados con OpenSSL.
- Además, puede usar servicios como let’s encrypt para certificados SSL válidos. Pero estos certificados deben renovarse cada tres meses.
Paso 2: Convierta las claves SSL al formato PKCS12
Nota: Si ya tiene el certificado en el formato
.p12
o.pfx
, no tiene que hacer esta conversión.
El comando que se muestra a continuación convierte certificados SSL a formato PKCS12 intermedio llamado jenkins.p12
. Asegúrese de tener los siguientes certificados con usted antes de ejecutar el comando.
- ca.servidor crt
- .servidor de clave
- .crt
También
- Reemplace
jenkins.devopscube.com
en el comando con su propio nombre de alias - Reemplace
your-strong-password
con una contraseña fuerte.
openssl pkcs12 -export -out jenkins.p12 \-passout 'pass:your-strong-password' -inkey server.key \-in server.crt -certfile ca.crt -name jenkins.devopscube.com
Paso 3: Convertir PKCS12 a formato JKS
Utilice el siguiente comando de herramienta clave para convertir el archivo jenkins.p12
a formato JKS.
Reemplace lo siguiente con sus propios valores.
-
-srcstorepass
div – – Contraseña utilizada en el paso 3 -
-deststorepass
div – – Reemplazar con una contraseña segura. -
-srcalias
nombre de alias utilizado en el paso 2 -
-destalias
Reemplace con un destino nombre de alias.
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
Debería ver un archivo llamado jenkins.jks
en su ubicación actual.
Paso 4: Agregue JKS a la ruta de Jenkins
jenkins_keystore.jks
el archivo debe guardarse en una ubicación específica donde Jenkins pueda acceder a él.
Vamos a crear una carpeta y mover la tecla jenkins_keystore.jks
a esa ubicación.
mkdir -p /etc/jenkinscp jenkins_keystore.jks /etc/jenkins/
Cambie los permisos de las claves y la carpeta.
chown -R jenkins: /etc/jenkinschmod 700 /etc/jenkinschmod 600 /etc/jenkins/jenkins.jks
Paso 5: Modificar la configuración de Jenkins para SSL
Todas las configuraciones de inicio de Jenkins clave están presentes en el archivo /etc/sysconfig/jenkins
. Todas las configuraciones basadas en SSL van a este archivo.
Abra el archivo
sudo vi /etc/sysconfig/jenkins
Busque y reemplace los valores en el archivo como se muestra a continuación.
Nota: Reemplace
your-keystore-password
con la contraseña del Almacén de claves, que estableció en el paso 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"
Guardar la configuración y reiniciar Jenkins.
sudo systemctl restart jenkins
Comprobar el estado de Jenkins.
sudo systemctl status jenkins
Paso 6: Validar SSL
Ahora usted debería ser capaz de acceder a Jenkins a través de https con el puerto 8443
https://<jenkins-dns/ip>:8443
también puede usar curl para verificar SSL
curl -k https://<jenkins-dns/ip>:8443
- Más