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
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.keyValidar 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(Opcional) Activar el header HSTS:
Agregar la linea siguiente en el archivo
/etc/cyberwatch/containers.env:ENABLE_HSTS="true"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:
Eliminar el volumen nginx:
sudo docker volume rm cbwonpremise_data_sslReiniciar la aplicación Cyberwatch, que en ausencia del volumen permitirá a nginx generar un nuevo certificado autofirmado y reiniciar el contenedor:
sudo cyberwatch restartConfigurar el certificado nuevamente, siguiendo el procedimiento completo descrito arriba
Con Kubernetes
- Requisito previo: haber ejecutado al menos una vez Cyberwatch
- Reemplazar los archivos
nginx.crtynginx.keyrespectivamente por el certificado y la clave privada asociada en la carpeta/var/lib/volumes/cyberwatch/ssl Reiniciar Cyberwatch:
sudo cyberwatch restart