Modifier le certificat TLS de Cyberwatch
Format requis pour le certificat et la clé
Le certificat et la clé doivent être au format PEM
.
La clé doit être non chiffrée.
Ce format n’est qu’une convention de nommage, l’extension des fichiers du certificat et de la clé n’ont pas de valeur technique réelle.
Cela indique que les fichiers attendus sont au format texte, avec le contenu du certificat encodés en base 64 entre les chaînes suivantes :
-----BEGIN CERTIFICATE-----
...certificat_encodé...
-----END CERTIFICATE-----
Avec Docker Swarm
Copier le nouveau certificat dans le conteneur 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
Valider la présence des fichiers :
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
(Optionnel) Activer le header HSTS :
Ajouter la ligne suivante dans le fichier
/etc/cyberwatch/containers.env
:ENABLE_HSTS="true"
Redémarrer Cyberwatch :
sudo cyberwatch restart
Troubleshooting
Dans le cas où Cyberwatch ne redémarre pas, il est possible de consulter les logs du conteneur nginx avec la commande suivante :
sudo cyberwatch logs nginx -f
Dans le cas où un problème est survenu lors de l’ajout du nouveau certificat, une erreur devrait remonter dans ces logs.
Une mauvaise configuration du certificat peut provoquer un crash du conteneur nginx. Ce conteneur devant être démarré pour permettre la reconfiguration du certificat ; lorsque ce type d’erreur se produit, il est nécessaire de suivre la procédure suivante afin de pouvoir configurer le certificat à nouveau :
Supprimer le volume nginx :
sudo docker volume rm cbwonpremise_data_ssl
Redémarrer l’application Cyberwatch, qui en l’absence du volume permettra à nginx de générer un nouveau certificat auto-signé et de relancer le conteneur :
sudo cyberwatch restart
Configuration du certificat à nouveau, en suivant la procédure complète décrite ci-dessus
Avec Kubernetes
- Prérequis : avoir lancé au moins une fois Cyberwatch
- Remplacer les fichiers
nginx.crt
etnginx.key
respectivement par le certificat et la clé privée associée dans le dossier/var/lib/volumes/cyberwatch/ssl
Redémarrer Cyberwatch :
sudo cyberwatch restart