Comment renouveler le certificat du serveur S-Filer
Cette page décrit comment remplacer le certificat SSL/TLS du serveur S-Filer avant son expiration, et comment mettre à jour les passerelles et les interfaces web pour qu'elles continuent de faire confiance au serveur.
Le certificat visé est la clé privée SSL/TLS du serveur : la paire de clés qui sécurise les connexions HTTPS des passerelles et des interfaces web vers le serveur (port 8088 par défaut). Elle est sélectionnée dans la configuration cfg.server.webserver.service.jetty.server.private.key de l'instance du serveur.
Attention
Les certificats suivants sont distincts et ne sont pas touchés par cette procédure :
- le certificat de la console d'administration (port 8090 par défaut), voir Renouveler le certificat de la console d'administration;
- les certificats HTTPS et FTPS des passerelles (clé privée SSL des protocoles HTTPS et FTPS de la passerelle);
- la clé de communication d'une passerelle ou d'une interface web (lien Renouveler la clé de communication avec le serveur S-Filer). Ne la renouvelez pas : elle n'a aucun lien avec le certificat du serveur.
Pourquoi les passerelles doivent être mises à jour
Chaque passerelle et chaque interface web possède un fichier de configuration : sfiler.conf pour la passerelle et gui.conf pour l'interface web, tous deux situés dans le répertoire conf de l'installation de la passerelle. Ces fichiers contiennent notamment :
cfg.sfiler.config.url: l'URL du serveur;cfg.sfiler.trusted.cert.1,cfg.sfiler.trusted.cert.2, ... : les certificats auxquels la composante fait confiance lors de sa première connexion au serveur.
Au démarrage, la passerelle et l'interface web se connectent au serveur pour obtenir leur configuration. Elles n'acceptent le certificat du serveur que s'il fait partie des certificats cfg.sfiler.trusted.cert.* ou s'il est signé par l'un d'eux. Si le nouveau certificat du serveur n'est pas reconnu, la composante ne peut pas démarrer :
- la passerelle journalise
Failed to initialize gateway. Could not bootstrap configuration with server.; - l'interface web journalise
The GUI could not get its configuration from the server at this moment. It will retry to get the configuration in 20 seconds.toutes les 20 secondes.
Il faut donc régénérer les fichiers de configuration après le changement de certificat du serveur, puis les copier sur chaque passerelle.
Important
Le changement du certificat du serveur interrompt le service : les passerelles et les interfaces web ne peuvent plus se connecter au serveur tant que leurs fichiers de configuration n'ont pas été remplacés et qu'elles n'ont pas été redémarrées. Prévoyez une fenêtre de maintenance et sauvegardez le répertoire conf de chaque passerelle avant de commencer.
Voir aussi
Pour être averti avant l'expiration des certificats, configurez la tâche Notification d'expiration de certificat.
Prérequis
- La liste de tous les noms d'hôte utilisés pour joindre le serveur, à commencer par celui de l'URL du serveur des passerelles (
cfg.sfiler.config.url). Le nouveau certificat doit tous les couvrir (voir Noms d'hôte et vérification de l'hôte SNI). - Si vous choisissez d'importer un certificat signé par une autorité de certification (CA) (option A de l'étape 1) :
- le nouveau certificat et sa clé privée dans un fichier PKCS#12 (
.p12ou.pfx) protégé par un mot de passe. Le fichier doit contenir une seule clé privée, idéalement avec la chaîne de certificats complète. Les magasins de clés JKS ne sont pas pris en charge; - le certificat racine et les éventuels certificats intermédiaires, chacun dans un fichier
.cer,.crt,.pemou.derdistinct.
- le nouveau certificat et sa clé privée dans un fichier PKCS#12 (
- Un accès à la machine du serveur, ainsi que les identifiants du compte de base de données utilisé par
sfiler-config-cli. - Un accès à chaque machine de passerelle, pour remplacer les fichiers de configuration et redémarrer le service S-Filer Gateway.
- Les noms des instances de passerelle et d'interface web. Pour les obtenir, exécutez la commande list-components.
Les commandes sfiler-config-cli ci-dessous s'exécutent à partir du répertoire d'installation du serveur (par exemple server).
Noms d'hôte et vérification de l'hôte SNI
Les noms d'hôte du nouveau certificat sont vérifiés deux fois :
- Par le client : les passerelles et les interfaces web vérifient que le nom d'hôte de leur URL de serveur (
cfg.sfiler.config.url) figure dans le certificat. Sinon, elles refusent la connexion. - Par le serveur, lorsque l'option Vérification de l'hôte SNI SSL/TLS est activée (valeur par défaut : Oui). SNI (Server Name Indication) est l'extension TLS par laquelle un client indique le nom d'hôte auquel il se connecte. Avec cette option, le serveur vérifie chaque requête HTTPS : si le nom d'hôte utilisé par le client ne figure pas dans le certificat du serveur, le serveur rejette la requête avec une erreur HTTP 400
Invalid SNI. Cela empêche le serveur de répondre sous un nom que son certificat ne couvre pas.
Le serveur considère qu'un nom d'hôte figure dans le certificat s'il correspond :
- à une entrée DNS du Subject Alternative Name (SAN), ou au CN du certificat;
- à un nom générique comme
*.example.com, qui couvre un seul niveau (sfiler.example.com, mais pasa.sfiler.example.com); - à une entrée adresse IP du SAN, si des clients se connectent par adresse IP.
La vérification de l'hôte SNI s'applique à tous les clients du serveur, y compris ceux qui ne vérifient pas eux-mêmes le certificat : par exemple les sondes de surveillance, les répartiteurs de charge, les scripts ou les intégrations qui appellent directement l'API du serveur. Si l'ancien certificat couvrait plusieurs noms (nom court, nom complet, alias, adresse IP), dressez la liste des noms réellement utilisés et assurez-vous que le nouveau certificat les couvre tous. Sinon, ces clients reçoivent l'erreur Invalid SNI dès le redémarrage du serveur (étape 4).
Pour savoir si l'option est activée, ouvrez [nom du serveur] > Configuration > Configurations de base et consultez Vérification de l'hôte SNI SSL/TLS.
Attention
Ne désactivez pas la vérification de l'hôte SNI pour contourner un certificat qui ne couvre pas tous les noms d'hôte : obtenez plutôt un certificat qui les couvre. Si vous devez la désactiver temporairement, réglez Vérification de l'hôte SNI SSL/TLS à Non, puis redémarrez le serveur. Réactivez-la une fois le certificat corrigé.
Étape 1 : Ajouter le nouveau certificat
Ajoutez la nouvelle paire de clés sous un nouvel alias, par exemple un alias qui contient l'année. Conserver l'ancienne paire de clés sous son propre alias permet de revenir en arrière (voir Retour arrière).
Choisissez l'une des deux options suivantes :
- Option A : importer un certificat signé par une CA, par exemple la CA de votre organisation. Utilisez cette option si votre politique de sécurité l'exige.
- Option B : générer un certificat auto-signé avec
sfiler-config-cli. Aucun fichier n'est nécessaire, mais le certificat ne couvre qu'un seul nom d'hôte.
Option A : Importer un certificat signé par une CA
Importez le fichier PKCS#12 qui contient le nouveau certificat et sa clé privée :
./sfiler-config-cli.sh -l my-user -p my-password -cf "conf/sfiler.conf" import-certificate-file -a "server-tls-2026" -f /path/to/new-server-certificate.p12 -pw "certificate-password".\sfiler-config-cli.bat -l my-user -p my-password -cf "conf\sfiler.conf" import-certificate-file -a "server-tls-2026" -f C:\path\to\new-server-certificate.p12 -pw "certificate-password"Importez ensuite le certificat racine et les certificats intermédiaires de la CA comme certificats de confiance, s'ils ne sont pas déjà dans le gestionnaire de certificats. Chacun doit avoir son propre alias.
./sfiler-config-cli.sh -l my-user -p my-password -cf "conf/sfiler.conf" import-certificate-file -a "my-root-ca" -f /path/to/root-ca.cer
./sfiler-config-cli.sh -l my-user -p my-password -cf "conf/sfiler.conf" import-certificate-file -a "my-intermediate-ca" -f /path/to/intermediate-ca.cer.\sfiler-config-cli.bat -l my-user -p my-password -cf "conf\sfiler.conf" import-certificate-file -a "my-root-ca" -f C:\path\to\root-ca.cer
.\sfiler-config-cli.bat -l my-user -p my-password -cf "conf\sfiler.conf" import-certificate-file -a "my-intermediate-ca" -f C:\path\to\intermediate-ca.cerTous les certificats de confiance du gestionnaire de certificats sont inscrits dans les fichiers de configuration des passerelles. Importer explicitement les certificats de la CA garantit que les passerelles font confiance à toute la chaîne du nouveau certificat.
Pour vérifier le résultat, exécutez list-certificates avec -t KEY_PAIR, puis avec -t TRUSTED_CERTIFICATE.
Vous pouvez aussi importer ces fichiers dans la console d'administration, sous Gestion des certificats.
Voir aussi
Option B : Générer un certificat auto-signé
Générez une nouvelle paire de clés RSA avec la commande generate-key-pair :
-h: le nom d'hôte du serveur, exactement tel qu'il apparaît dans l'URLcfg.sfiler.config.urldes passerelles;-ks: la taille de la clé,2048ou4096;-d: la durée de validité en années, de1à10.
./sfiler-config-cli.sh -l my-user -p my-password -cf "conf/sfiler.conf" generate-key-pair -a "server-tls-2026" -h "sfiler-server.example.com" -ks 4096 -d 2.\sfiler-config-cli.bat -l my-user -p my-password -cf "conf\sfiler.conf" generate-key-pair -a "server-tls-2026" -h "sfiler-server.example.com" -ks 4096 -d 2Le certificat généré est auto-signé et ne contient que le nom d'hôte dans son CN : il n'a ni chaîne de certificats ni Subject Alternative Name. Les passerelles et les interfaces web lui font confiance dès qu'elles reçoivent leur nouveau fichier de configuration (étape 3).
Comme le certificat ne couvre qu'un seul nom d'hôte, tous les clients du serveur doivent utiliser exactement ce nom. Si le serveur est joint sous plusieurs noms et que la vérification de l'hôte SNI est activée, utilisez l'option A avec un certificat dont le SAN contient tous les noms (voir Noms d'hôte et vérification de l'hôte SNI).
Attention
sfiler-config-cli ne peut pas produire de demande de signature de certificat (CSR) : une clé générée par S-Filer ne peut pas être signée par une CA par la suite. Tout autre client qui se connecte directement au serveur doit aussi être configuré pour faire confiance à ce certificat auto-signé.
Étape 2 : Associer le nouveau certificat au serveur
Dans la console d'administration :
- Ouvrez [nom du serveur] > Configuration > Configurations de base.
- Dans Clé privée SSL/TLS, sélectionnez l'alias importé à l'étape 1, puis cliquez sur Sauvegarder.
- Un message de confirmation rappelle que les fichiers de configuration de toutes les passerelles (
sfiler.conf) et interfaces web (gui.conf) doivent être mis à jour. Confirmez.
Vous pouvez aussi exécuter la commande set-config, où -n est le nom de l'instance du serveur. La commande ne vérifie pas que l'alias existe : assurez-vous qu'il est écrit exactement comme à l'étape 1.
./sfiler-config-cli.sh -l my-user -p my-password -cf "conf/sfiler.conf" set-config -n "mycompany_server" -k "cfg.server.webserver.service.jetty.server.private.key" -v "server-tls-2026".\sfiler-config-cli.bat -l my-user -p my-password -cf "conf\sfiler.conf" set-config -n "mycompany_server" -k "cfg.server.webserver.service.jetty.server.private.key" -v "server-tls-2026"Étape 3 : Générer les nouveaux fichiers de configuration
Pour chaque instance de passerelle et chaque instance d'interface web, générez un nouveau fichier de configuration avec la commande export-config. Le fichier contient l'URL du serveur, les certificats de confiance (dont le nouveau certificat du serveur) et la clé de communication propre à l'instance.
Pour ne pas confondre les fichiers, générez-les dans un répertoire distinct par machine de passerelle :
./sfiler-config-cli.sh -l my-user -p my-password -cf "conf/sfiler.conf" export-config -n "mycompany_gateway" -ccf /tmp/renewal/gateway1/sfiler.conf
./sfiler-config-cli.sh -l my-user -p my-password -cf "conf/sfiler.conf" export-config -n "mycompany_gui" -ccf /tmp/renewal/gateway1/gui.conf.\sfiler-config-cli.bat -l my-user -p my-password -cf "conf\sfiler.conf" export-config -n "mycompany_gateway" -ccf C:\renewal\gateway1\sfiler.conf
.\sfiler-config-cli.bat -l my-user -p my-password -cf "conf\sfiler.conf" export-config -n "mycompany_gui" -ccf C:\renewal\gateway1\gui.confRépétez ces deux commandes pour chaque machine de passerelle, avec ses propres noms d'instance.
Vous pouvez aussi télécharger les fichiers dans la console d'administration : ouvrez [nom de la passerelle] et cliquez sur Télécharger la configuration de la passerelle-client (sfiler.conf), puis ouvrez [nom de l'interface web] et cliquez sur Télécharger la configuration de l'interface Web (gui.conf).
Attention
Le fichier généré remplace la totalité du fichier de configuration de la composante. Si des propriétés ont été ajoutées manuellement au fichier sfiler.conf ou gui.conf actuel d'une passerelle, comparez les fichiers et ajoutez-les de nouveau au nouveau fichier.
Ces fichiers contiennent la clé privée de la composante : transférez-les par un canal sécurisé et supprimez les copies une fois la procédure terminée.
Au besoin, vérifiez la syntaxe de chaque fichier avec la commande validate-component-config. Cette commande ne teste pas la connexion au serveur.
Étape 4 : Redémarrer le serveur
Le serveur charge son certificat SSL/TLS au démarrage. Redémarrez le service S-Filer Server (gestionnaire des services Windows, ou systemctl restart sfiler.service sous Linux).
À partir de ce moment, les passerelles et les interfaces web qui utilisent encore leur ancien fichier de configuration peuvent ne plus réussir à se connecter.
Étape 5 : Mettre à jour chaque passerelle
Sur chaque machine de passerelle :
- Arrêtez le service S-Filer Gateway (gestionnaire des services Windows, ou
systemctl stop sfiler-gateway.servicesous Linux). - Sauvegardez les fichiers
conf/sfiler.confetconf/gui.confactuels du répertoire d'installation de la passerelle. - Remplacez-les par les fichiers générés pour cette passerelle à l'étape 3.
- Démarrez le service S-Filer Gateway.
Étape 6 : Valider
- Dans les journaux de chaque passerelle, vérifiez que les erreurs décrites dans Pourquoi les passerelles doivent être mises à jour n'apparaissent pas. Si les journaux montrent une erreur HTTP 400
Invalid SNI, le nom d'hôte de l'URL du serveur de la passerelle ne figure pas dans le nouveau certificat (voir Noms d'hôte et vérification de l'hôte SNI). - Ouvrez l'interface web de chaque passerelle dans un navigateur et connectez-vous.
- Si la passerelle les utilise, testez un transfert avec chaque protocole (SFTP, FTPS, HTTPS).
Étape 7 : Supprimer l'ancien certificat
Une fois le nouveau certificat validé sur toutes les passerelles, supprimez l'ancienne paire de clés avec la commande delete-certificate, ou dans Gestion des certificats. La suppression est refusée tant que l'alias est utilisé.
./sfiler-config-cli.sh -l my-user -p my-password -cf "conf/sfiler.conf" delete-certificate -a "server-tls-2025".\sfiler-config-cli.bat -l my-user -p my-password -cf "conf\sfiler.conf" delete-certificate -a "server-tls-2025"Retour arrière
Si les passerelles ne réussissent pas à se connecter avec le nouveau certificat :
- Sélectionnez de nouveau l'ancien alias dans Clé privée SSL/TLS (étape 2), puis redémarrez le serveur.
- Sur chaque passerelle, arrêtez le service, restaurez les fichiers
sfiler.confetgui.confsauvegardés à l'étape 5, puis démarrez le service.
Renouveler le certificat de la console d'administration
La console d'administration utilise son propre certificat, conservé dans le fichier conf/sfiler.conf du serveur. Son remplacement ne demande aucune modification sur les passerelles.
La console d'administration possède sa propre option Vérification de l'hôte SNI SSL/TLS, activée par défaut : le nouveau certificat doit couvrir le nom d'hôte saisi dans la barre d'adresse du navigateur pour joindre la console, sinon le navigateur reçoit une erreur Invalid SNI.
Importez la nouvelle paire de clés et associez-la à la console d'administration avec l'option -apply-configurator, qui pointe vers le fichier de configuration du serveur, puis redémarrez le service S-Filer Server :
./sfiler-config-cli.sh -l my-user -p my-password -cf "conf/sfiler.conf" import-certificate-file -a "console-tls-2026" -f /path/to/new-console-certificate.p12 -pw "certificate-password" -apply-configurator "conf/sfiler.conf".\sfiler-config-cli.bat -l my-user -p my-password -cf "conf\sfiler.conf" import-certificate-file -a "console-tls-2026" -f C:\path\to\new-console-certificate.p12 -pw "certificate-password" -apply-configurator "conf\sfiler.conf"Vous pouvez aussi sélectionner la nouvelle clé dans Console administrative > Clé privée SSL/TLS (voir Configuration de la clé privée dans la console d'administration).
