Modificar el certificado TLS de Cyberwatch

Formato requerido para el certificado y la clave

El certificado y la clave deben estar en formato PEM.

La clave debe estar sin cifrar.

Este formato es solo una convencion de nomenclatura; la extension de los archivos del certificado y de la clave no tiene un valor técnico real.

Esto indica que los archivos esperados están en formato texto, con el contenido del certificado codificado en base 64 entre las siguientes cadenas:

-----BEGIN CERTIFICATE-----
...certificado_codificado...
-----END CERTIFICATE-----

Con Docker Swarm

  1. Copiar el nuevo certificado en el contenedor nginx:

    docker cp monfichier.crt $(docker ps -f name=cbwonpremise_nginx -q):/etc/nginx/ssl/nginx.crt
    docker cp monfichier.key $(docker ps -f name=cbwonpremise_nginx -q):/etc/nginx/ssl/nginx.key
    
  2. Validar la presencia de los archivos:

    sudo cyberwatch exec nginx ls -l /etc/nginx/ssl
    
    total 12
    -rw-r--r-- 1 root root  424 Aug 20 09:22 dhparams.pem
    -rw-r--r-- 1 1000 1000 1274 Aug 10 12:20 nginx.crt
    -rw-r--r-- 1 1000 1000 1705 Aug 10 12:20 nginx.key
    
  3. (Opcional) Activar el header HSTS:

    Agregar la linea siguiente en el archivo /etc/cyberwatch/containers.env:

    ENABLE_HSTS="true"
    
  4. Reiniciar Cyberwatch:

    sudo cyberwatch restart
    

Troubleshooting

En caso de que Cyberwatch no se reinicie, es posible consultar los logs del contenedor nginx con el siguiente comando:

sudo cyberwatch logs nginx -f

En caso de que haya ocurrido un problema al agregar el nuevo certificado, un error debería aparecer en estos logs.

Una mala configuración del certificado puede provocar un crash del contenedor nginx. Este contenedor debe estar iniciado para permitir la reconfiguracion del certificado; cuando ocurre este tipo de error, es necesario seguir el siguiente procedimiento para poder configurar el certificado nuevamente:

  1. Eliminar el volumen nginx:

     sudo docker volume rm cbwonpremise_data_ssl
    
  2. Reiniciar la aplicación Cyberwatch, que en ausencia del volumen permitirá a nginx generar un nuevo certificado autofirmado y reiniciar el contenedor:

     sudo cyberwatch restart
    
  3. Configurar el certificado nuevamente, siguiendo el procedimiento completo descrito arriba

Con Kubernetes

  1. Requisito previo: haber ejecutado al menos una vez Cyberwatch
  2. Reemplazar los archivos nginx.crt y nginx.key respectivamente por el certificado y la clave privada asociada en la carpeta /var/lib/volumes/cyberwatch/ssl
  3. Reiniciar Cyberwatch:

    sudo cyberwatch restart
    

Volver arriba

English Français Español