Files
Procedure-Systel/Dépannage/Certificat/Créer et mettre à jour un certificat Wildcard.md
Maxime BOURIEAU 28cfb11acb Add documentation for Nutanix cluster management, Synology NAS updates, Windows 11 operator setup, decision support system installation, and Totem Manager configuration
- Created guides for adding/removing nodes in Nutanix clusters and installing Nutanix servers.
- Documented the process for updating Nutanix infrastructure and Synology NAS.
- Added instructions for preparing a Windows 11 operator workstation, including Sysprep and network configuration.
- Established steps for setting up the decision support system and configuring Totem Manager.
2026-10-15 10:03:27 +02:00

246 lines
13 KiB
Markdown

# Créer et déployer un certificat wildcard
Le SDIS 88 et le domaine `sdis88.fr` sont utilisés comme exemples dans cette procédure. Adapter les domaines, noms de fichiers, chemins et adresses à l'environnement concerné.
> **Sécurité :** un fichier `.pem` généré depuis un PFX peut contenir la clé privée. Le protéger comme un secret, limiter son accès et le transférer uniquement par un canal approuvé. Ne jamais publier la clé privée dans la documentation ni dans un espace partagé non autorisé.
## 1. Prérequis
1. Faire commander le nouveau certificat par le client et coordonner la demande avec le référent habituel (contact cité dans la procédure source : Julien Vidal).
2. Récupérer auprès du client les fichiers fournis par l'autorité de certification et la passphrase, le cas échéant. Conserver les secrets dans RDM.
3. Récupérer le dossier `OpenSSL-Win32` sur le NAS SI-OPS. Le chemin exact reste à confirmer dans l'environnement.
4. Installer Keystore Explorer, en version 5.5.2 si possible.
5. Déterminer le type de fichiers reçus (PFX complet, PFX incomplet ou autre) et suivre uniquement le parcours correspondant.
## 2. Vérifier un PFX complet
Cette procédure s'applique lorsque le client fournit un PFX complet et sa passphrase.
1. Ouvrir le fichier `.pfx` dans Keystore Explorer et saisir la passphrase fournie par le client.
2. Pour faciliter l'identification, renommer l'alias du certificat si nécessaire.
3. Ouvrir le certificat wildcard et vérifier son sujet (par exemple `*.sdis88.fr`) ainsi que ses dates de validité. Les dates doivent correspondre à la période attendue.
4. Vérifier la chaîne de certification : pour chaque certificat, comparer le CN de l'émetteur avec le CN de l'autorité suivante et vérifier que les certificats de la chaîne sont valides.
5. Exporter le PFX si un nouveau mot de passe doit lui être appliqué. Utiliser le mot de passe conservé dans `RDM > Commun > Certificat Wildcard`.
6. Enregistrer le PFX exporté dans le répertoire `OpenSSL-Win32` utilisé pour la conversion.
La procédure source mentionne un « PFX incomplet », mais ne donne pas les étapes permettant de le compléter. Dans ce cas, demander au fournisseur le PFX complet et sa chaîne de certification, ou utiliser une procédure de récupération validée. Ne pas supposer que la chaîne peut être reconstruite à partir du seul fichier incomplet.
## 3. Convertir le PFX en PEM
Le PEM est utilisé pour les mises à jour des serveurs et équipements concernés. Dans une invite de commandes Windows, se placer dans le répertoire contenant le PFX et définir la configuration OpenSSL :
```cmd
cd /d C:\OpenSSL-Win32
set OPENSSL_CONF=C:\OpenSSL-Win32\openssl.cnf
```
Avec OpenSSL 32 bits :
```cmd
openssl pkcs12 -in sdis88.fr.pfx -out sdis88.pem -nodes
```
Avec OpenSSL 64 bits :
```cmd
"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" pkcs12 -in sdis88.fr.pfx -out sdis88.pem -nodes
```
Remplacer les noms de fichiers par ceux de l'environnement. La commande peut demander la passphrase du PFX.
> L'option `-nodes` écrit la clé privée sans chiffrement dans le PEM. Protéger immédiatement le fichier, ne pas le laisser dans un répertoire temporaire ou partagé et le supprimer de façon sécurisée lorsque les déploiements et contrôles sont terminés.
Ne transmettre le PEM au client que si cela est nécessaire et autorisé, par un canal sécurisé; vérifier auparavant si le client a réellement besoin de la clé privée.
## 4. Vérifier le certificat depuis les réseaux concernés
Après le déploiement et le redémarrage des services concernés, vérifier le certificat présenté par les services :
- Depuis le réseau Systel, ouvrir `https://aml.sdisXX.fr` en remplaçant `XX` par le numéro du SDIS. Même si la page est blanche, examiner le certificat présenté.
- Depuis un poste TELEMW ou le réseau du SDIS, ouvrir `https://startweb.sdisXX.fr` et examiner le certificat présenté.
Ces URL servent à vérifier respectivement les accès HA-EXT et HA-INT. Contrôler le domaine, la période de validité et la chaîne de certification; rafraîchir la page après le redémarrage de HAProxy.
## 5. Mettre à jour HA-INT et HA-EXT
Appliquer les étapes à chaque paire HA concernée. Sauvegarder les configurations avant modification et procéder sur un serveur à la fois.
### 5.1 Sauvegarder la configuration HAProxy
Avec WinSCP :
1. Se connecter au serveur HA.
2. Ouvrir `/etc/haproxy`.
3. Dupliquer `haproxy.cfg` et nommer la copie avec la date, l'opération et l'intervenant, par exemple `haproxy.cfg_AAAA_MM_JJ_renouvellement-certificat_initiales`.
Ou, en SSH, créer une copie de sauvegarde :
```bash
cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg_AAAA_MM_JJ_operation_intervenant
```
Répéter la sauvegarde sur les HA concernés.
### 5.2 Vérifier les chemins des certificats dans HAProxy
1. Récupérer une copie de la configuration initiale de HA1 et l'ouvrir dans Notepad++.
2. Rechercher toutes les références aux fichiers `.pem`.
3. Vérifier que le nom indiqué dans la configuration correspond au nom du nouveau certificat qui sera déposé sur le serveur.
4. Préférer un nom générique stable, afin de ne pas modifier la configuration à chaque renouvellement. Si la configuration utilise déjà un nom générique correct, ne pas le modifier.
5. Déployer la configuration mise à jour sur le serveur concerné et conserver la sauvegarde initiale.
### 5.3 Remplacer le certificat et valider la configuration
Dans l'exemple source, le répertoire du certificat est `/etc/ssl/private/sdis88.fr`. Vérifier le chemin configuré sur le serveur et adapter les noms :
```bash
cd /etc/ssl/private/sdis88.fr
mv sdis88.pem sdis88_AAAA.pem
cp /home/systel/sdis88.pem ./
```
Exécuter la validation avant de redémarrer HAProxy :
```bash
haproxy -c -f /etc/haproxy/haproxy.cfg
```
Si la validation échoue, vérifier que le nouveau PEM est dans le répertoire attendu et que son nom correspond exactement à celui référencé dans `haproxy.cfg`. Ne pas redémarrer le service avec une configuration invalide.
Quand la validation réussit, redémarrer HAProxy :
```bash
service haproxy restart
```
La procédure source indique qu'HA1 peut être redémarré en premier car le service redémarre rapidement. Contrôler le service et le certificat après ce premier redémarrage avant de poursuivre sur l'autre serveur HA.
## 6. Mettre à jour les certificats StartWeb si nécessaire
Cette étape n'est pas nécessaire si, après la mise à jour des HA-INT, le certificat présenté par `https://startweb.sdisXX.fr` est déjà le nouveau certificat.
Le PEM contient la clé privée et un ou plusieurs certificats. À partir du PEM, préparer les fichiers `.key` et `.crt` :
1. Dans un éditeur de texte, copier le bloc de clé privée, de `BEGIN PRIVATE KEY` à `END PRIVATE KEY`, dans un fichier `.key`. Si le PEM utilise un autre type de marqueur de clé, conserver les délimiteurs exacts du bloc correspondant.
2. Copier le ou les blocs `BEGIN CERTIFICATE` / `END CERTIFICATE` qui suivent la clé dans un fichier `.crt`, conformément au format attendu par la configuration NGINX.
3. Vérifier que les noms de fichiers correspondent aux chemins référencés par NGINX.
Transférer les fichiers vers `/home/systel` sur chaque StartWeb concerné. Les emplacements indiqués dans la source sont `/etc/nginx/certs` et `/etc/ssl/private/sdisxx`; vérifier le répertoire réellement utilisé avant toute modification.
Exemple pour `/etc/nginx/certs` :
```bash
mv /etc/nginx/certs/sdis88.fr.crt /etc/nginx/certs/sdis88.fr.crt_AAAA
mv /etc/nginx/certs/sdis88.fr.key /etc/nginx/certs/sdis88.fr.key_AAAA
cp /home/systel/sdis88.fr.crt /etc/nginx/certs/
cp /home/systel/sdis88.fr.key /etc/nginx/certs/
service nginx restart
```
Si les certificats sont stockés dans `/etc/ssl/private/sdisxx`, adapter les commandes à ce chemin et vérifier que les noms correspondent exactement à la configuration. Répéter sur les serveurs StartWeb nécessaires et contrôler le certificat après redémarrage.
## 7. Ajouter les autorités de certification au magasin GlassFish
Les appareils anciens peuvent ne pas connaître les autorités de certification récentes. Vérifier le magasin de certificats du serveur Web et y ajouter les autorités manquantes si nécessaire.
1. Se connecter au serveur Web avec WinSCP.
2. Sauvegarder le fichier suivant en ajoutant une date et une description au nom de la copie :
```text
/opt/glassfish5/glassfish/domains/domain1/config/cacerts.jks
```
3. Récupérer une copie de `cacerts.jks` sur le poste d'administration et l'ouvrir dans Keystore Explorer.
4. Examiner les certificats et vérifier si les autorités de la chaîne wildcard sont déjà présentes.
5. Si une autorité manque, utiliser **Importer un certificat de confiance** et l'ajouter. Répéter pour chaque autorité manquante.
6. Transférer le magasin mis à jour sur le serveur et redémarrer le service GlassFish selon la procédure d'exploitation de l'environnement.
## 8. Renouveler le certificat du Bastion
Le Bastion utilise un certificat au format CRT et une clé au format KEY. Préparer les deux fichiers depuis le PEM selon la section 6, puis :
1. Vérifier les chemins de certificat configurés dans :
```text
/etc/apache2/sites-available/guacamole.conf
```
2. Se placer dans le répertoire de certificats configuré. La source donne `/etc/ssl/private/SDISXX` comme exemple.
3. Renommer les certificats existants pour les sauvegarder, puis déposer les nouveaux fichiers depuis `/home/systel`.
Exemple :
```bash
cd /etc/ssl/private/SDISXX
mv SDISXX-Wildcard.crt SDISXX-Wildcard_AAAA.crt
mv SDISXX-Wildcard.key SDISXX-Wildcard_AAAA.key
cp /home/systel/SDISXX-Wildcard.crt ./
cp /home/systel/SDISXX-Wildcard.key ./
```
Respecter exactement les noms et la casse attendus par `guacamole.conf`; les chemins Linux sont sensibles à la casse. Vérifier la configuration, puis redémarrer Apache :
```bash
sudo service apache2 restart
```
Contrôler l'accès au Bastion et le certificat présenté.
## 9. Mettre à jour le certificat MyIRIS+
1. Préparer le fichier `.key` et le fichier `.crt` à partir du PEM selon la section 6.
2. Se connecter avec WinSCP à la VM `RPMyIRIS+-TURN` (entrée disponible dans RDM).
3. Sauvegarder les certificats présents dans `/home/systel/certs` :
```bash
mv /home/systel/certs/nginx.crt /home/systel/certs/nginx_AAAA.crt
mv /home/systel/certs/nginx.key /home/systel/certs/nginx_AAAA.key
```
4. Déposer les nouveaux fichiers `.crt` et `.key` dans `/home/systel/certs`.
5. Charger les certificats et redémarrer les conteneurs avec le script :
```bash
utils/load-certs.sh
```
6. Vérifier le certificat et le fonctionnement WebRTC avec l'outil de test [Trickle ICE](https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/). Utiliser le compte, le nom DNS et le mot de passe propres à l'environnement; récupérer les secrets dans RDM.
## 10. Mettre à jour le WAF pour CSPM
### 10.1 Prérequis et préparation des fichiers
Mettre à jour le certificat sur les quatre HAProxy avant le WAF.
Découper le PEM en trois fichiers, en vérifiant l'ordre et le contenu des blocs :
- `wildcard_AAAA.key` : bloc de clé privée;
- `wildcard_AAAA.crt` : certificat du domaine `*.sapeurs-pompiers.mc` uniquement;
- `intermediaire.txt` : certificats intermédiaires restants.
Protéger le fichier `.key` comme un secret.
### 10.2 Importer les certificats dans le WAF
Depuis la VM de télémaintenance, lancer **R&S Web Application** et se connecter à l'hôte `10.255.246.73`, port `3001`. Utiliser le compte `admin`; récupérer le mot de passe dans RDM.
1. Ouvrir **Setup > SSL > Certificates**.
2. Cliquer sur **Add** et charger les trois fichiers dans les champs correspondants.
3. Pour chaque application/tunnel concerné, cliquer sur **Modify**, ouvrir l'onglet **SSL**, sélectionner le certificat importé, puis confirmer avec **OK**.
4. Appliquer la modification au tunnel.
Il est possible de traiter les tunnels un par un et de cliquer sur **Apply** après chacun, ou de modifier plusieurs tunnels puis d'appliquer les changements ensemble. Vérifier que chaque tunnel concerné utilise le nouveau certificat.
### 10.3 Vérifier le résultat
Depuis un navigateur côté Systel, ouvrir `https://sau.sapeurs-pompiers.mc` et contrôler le certificat présenté, notamment son domaine et ses dates.
La procédure source indique de ne pas tenir compte d'un message d'erreur et de regarder uniquement la date. Ne pas considérer une alerte de sécurité comme un résultat valide : si le navigateur signale une erreur TLS, vérifier le nom de domaine, la chaîne, la validité et l'application effective du certificat avant de clôturer l'intervention.
## 11. Contrôles finaux et nettoyage
- Vérifier chaque URL et chaque service concerné après le redémarrage.
- Confirmer les dates, le nom du domaine et la chaîne de certification.
- Conserver les copies de sauvegarde des certificats et configurations selon la politique de retour arrière.
- Supprimer de façon sécurisée les PEM et fichiers temporaires contenant la clé privée lorsque les contrôles sont terminés et que leur conservation n'est plus nécessaire.