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 convención de nomenclatura; la extensión de los archivos del certificado y 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(Recomendado) Activar el header HSTS:
Se recomienda activar el header HSTS para reforzar la seguridad de las conexiones forzando el uso del protocolo HTTPS.
Añadir la siguiente línea en el archivo
/etc/cyberwatch/containers.env:ENABLE_HSTS="true"Reiniciar Cyberwatch:
sudo cyberwatch restart
Troubleshooting
En caso de que Cyberwatch no reinicie, es posible consultar los logs del contenedor nginx con el siguiente comando:
sudo cyberwatch logs nginx -f
Si ocurre un problema al añadir el nuevo certificado, debería aparecer un error en estos logs.
Una mala configuración del certificado puede provocar un crash del contenedor nginx. Este contenedor debe estar iniciado para permitir la reconfiguración del certificado; cuando ocurre este tipo de error, es necesario seguir el siguiente procedimiento para poder configurar el certificado de nuevo:
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 de nuevo, siguiendo el procedimiento completo descrito arriba
Con Kubernetes
- Requisitos previos: haber lanzado al menos una vez Cyberwatch
- Sustituir 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