Procédure d'Importation d'un Certificat SSL dans Gespage sous Windows
⚠️ Important : Veuillez noter que cette procédure nécessitera une ⏳ interruption de service d'environ 15 minutes lors de l'étape de redémarrage final. Planifiez cette opération en conséquence.
1. Objectif
Cette procédure décrit les étapes nécessaires pour importer un certificat SSL signé par une autorité de certification (CA) dans le serveur Payara intégré à Gespage. L'objectif est d'activer une connexion HTTPS sécurisée ?️ pour l'interface web de Gespage, garantissant la confidentialité ? et l'intégrité des données échangées entre le serveur et les utilisateurs.
2. Comprendre les Éléments Clés
Avant de commencer, voici une brève explication des composants impliqués :
- SSL (Secure Sockets Layer) / TLS (Transport Layer Security) : ? Protocoles cryptographiques qui fournissent une communication sécurisée sur un réseau. Dans ce contexte, ils chiffrent ? les données entre le navigateur web de l'utilisateur et le serveur Gespage.
- Certificat SSL : ? Un fichier électronique qui identifie un site web et prouve son authenticité. Il contient la clé publique du serveur, des informations sur l'identité du site et est signé par une autorité de certification (CA).
- Autorité de Certification (CA) : ? Une organisation de confiance qui émet et gère les certificats numériques. Les navigateurs web font confiance ? aux certificats émis par les CA reconnues.
- Clé Privée : ? Une clé cryptographique secrète, associée à la clé publique du certificat SSL. Elle est utilisée pour déchiffrer les données chiffrées par la clé publique. La clé privée doit être conservée en sécurité ? et ne jamais être divulguée ?.
- Keystore : ? Un conteneur sécurisé pour stocker les certificats et les clés privées au format Java (JKS - Java KeyStore). Payara utilise des keystores pour gérer les informations d'identification SSL.
keystore.jks
: ? Le keystore principal de Payara où le certificat SSL de votre serveur et sa clé privée sont importés.cacerts.jks
: ?️ Un keystore contenant les certificats des autorités de certification (CA) de confiance. Lorsque Payara reçoit un certificat SSL d'un navigateur, il vérifie si ce certificat est signé par une CA présente dans soncacerts.jks
.- Payara : ? Le serveur d'applications Java EE (Enterprise Edition) sur lequel Gespage est déployé. Il gère les requêtes web et sert l'application Gespage. Dans cette configuration, Payara est embarqué avec l'installation de Gespage.
keytool
: ?️ Un utilitaire de ligne de commande fourni avec le JDK (Java Development Kit) qui permet de gérer les keystores, les clés et les certificats. Il est utilisé dans cette procédure pour importer les certificats dans les keystores de Payara..pfx
(ou.p12
) : ? Un format de fichier d'archive portable qui peut contenir un certificat serveur, les certificats intermédiaires et la clé privée correspondante, le tout protégé par un mot de passe ?. Il est couramment utilisé pour importer et exporter des certificats..crt
/.cer
: ? Formats de fichiers contenant des certificats X.509. Ils contiennent généralement uniquement la clé publique et les informations d'identification.- OpenSSL : ? Une boîte à outils de cryptographie open source qui peut être utilisée pour créer, gérer et convertir des certificats et des clés. Il est optionnel dans cette procédure, mais utile pour créer des fichiers
.pfx
à partir de fichiers.crt
et.key
séparés.
3. Prérequis
3.1. ? Fichiers Requis :
- Fichier de certificat PKCS#12 (.pfx ou .p12) :Ce fichier doit contenir :
- Le certificat SSL de votre domaine.
- La clé privée associée au certificat.
- Les certificats intermédiaires émis par l'autorité de certification (le cas échéant).
- Certificat de l'autorité de certification (CA) (.crt ou .cer) : Requis uniquement si le certificat de l'autorité racine n'est pas inclus dans le fichier
.pfx
.
3.2. ?️ Outils Indispensables :
Java (Intégré à Gespage) : Aucune installation séparée n'est nécessaire. L'outil
keytool
est inclus dans l'environnement Java de Gespage.keytool
: ? Utilitaires de gestion de clés et de certificats Java, situé dans le répertoire :C:\Program Files\Gespage\GespageCore\JDK\zulu11.74.15-ca-jdk11.0.24-win_x64\bin
OpenSSL : ? Peut être utilisé pour manipuler les fichiers de certificats, notamment pour créer un fichier
.pfx
à partir de fichiers.crt
et.key
séparés. Si ce n'est pas déjà installé, téléchargez-le depuis une source fiable comme https://slproweb.com/products/Win32OpenSSL.html et suivez les instructions d'installation fournies sur le site.
3.4. ? Emplacements des Keystores Gespage :
Il faut faire un backup de ces fichiers :
keystore.jks
: ? Contient le certificat SSL et sa clé privée. Emplacement par défaut :C:\\Program Files\Gespage\GespageCore\server\config\
cacerts.jks
: ?️ Contient les certificats des autorités de certification de confiance. Emplacement par défaut :C:\\Program Files\Gespage\GespageCore\server\config\
3.5. ? Mots de Passe par Défaut (À modifier impérativement après l'importation) :
keystore.jks
:changeit
cacerts.jks
:changeit
.pfx
: Défini lors de la création du fichier. Assurez-vous de connaître ce mot de passe.
4. Étapes de la Procédure
4.1. ?️ (Optionnel) Création d'un Fichier PKCS#12 (.pfx) à partir de Fichiers .crt et .key
Si vous possédez un certificat au format .crt
et une clé privée au format .key
, vous devez les combiner dans un fichier .pfx
(PKCS#12) pour l'importation dans le keystore Java de Payara.
⌨️ Ouvrir l'invite de commandes (cmd) en tant qu'administrateur.
➡️ Exécuter la commande OpenSSL suivante :
openssl pkcs12 -export -out "C:\\chemin\vers\certificat.pfx" -inkey "C:\\chemin\vers\cle_privee.key" -in "C:\\chemin\vers\certificat.crt" -certfile "C:\\chemin\vers\certificat_intermediaire.crt"
- ? Remplacez
"C:\\chemin\vers\certificat.pfx"
,"C:\\chemin\vers\cle_privee.key"
,"C:\\chemin\vers\certificat.crt"
et"C:\\chemin\vers\certificat_intermediaire.crt"
par les chemins d'accès réels à vos fichiers. Si vous avez plusieurs certificats intermédiaires, vous pouvez les ajouter en répétant l'optioncertfile
. Si vous n'avez pas de certificat intermédiaire, omettez l'optioncertfile
. - ? Vous serez invité à définir et confirmer un mot de passe pour le fichier
.pfx
. Conservez ce mot de passe en sécurité.
- ? Remplacez
4.2. Importation du Certificat de l'Autorité de Certification (CA) dans cacerts.jks
Cette étape est nécessaire pour que le serveur Payara fasse confiance ? au certificat SSL que vous allez importer.
⌨️ Ouvrir l'invite de commandes (cmd) en tant qu'administrateur.
➡️ Naviguer vers le répertoire des binaires Java de Gespage :
C:\\Program Files\Gespage\GespageCore\server\config\
➡️ Exécuter la commande
keytool
pour importer le certificat CA :keytool -importcert ^ -alias "nom_unique_ca" ^ -file "C:\\chemin\vers\certificat_CA.crt" ^ -keystore "C:\\Program Files\Gespage\GespageCore\server\config\cacerts.jks" ^ -storepass changeit ^ -trustcacerts
Explication des paramètres :
Paramètre Description Exemple -alias
Nom unique que vous attribuez à ce certificat CA dans le keystore. Choisissez un nom descriptif pour une identification facile. gespage_ca
,entrust_root
,digicert_intermediate
-file
Chemin d'accès complet au fichier du certificat de l'autorité de certification (au format .crt
ou.cer
).C:\\Chemin\Vers\CA.crt
-keystore
Spécifie le fichier keystore cible dans lequel le certificat CA sera importé. C:\\Program Files\Gespage\GespageCore\server\config\cacerts.jks
-storepass
Mot de passe du keystore cible ( cacerts.jks
). La valeur par défaut estchangeit
.changeit
-trustcacerts
Indique à keytool
que le certificat importé est celui d'une autorité de certification de confiance.(Aucune valeur à spécifier) Si vous avez plusieurs certificats intermédiaires qui ne sont pas inclus dans le fichier
.pfx
, répétez cette commande pour chaque certificat, en utilisant un alias unique différent à chaque fois.
4.3. Importation du Certificat SSL dans keystore.jks
Cette étape importe votre certificat SSL et sa clé privée dans le keystore de Payara.
➡️ Toujours dans l'invite de commandes (cmd) et dans le répertoire des binaires Java de Gespage (
C:\Program Files\Gespage\GespageCore\JDK\zulu11.74.15-ca-jdk11.0.24-win_x64\bin
), exécutez la commandekeytool
suivante :keytool -importkeystore ^ -srckeystore "C:\\chemin\vers\certificat.pfx" ^ -srcstoretype PKCS12 ^ -srcstorepass votre_mot_de_passe_pfx ^ -destkeystore "C:\Program Files\Gespage\GespageCore\server\config\keystore.jks" ^ -deststoretype JKS ^ -deststorepass changeit ^ -destalias s1as ^ -keypass changeit
Explication des paramètres :
Paramètre Description Exemple -srckeystore
Chemin d'accès complet au fichier de keystore source (votre fichier .pfx
ou.p12
).C:\\Chemin\Vers\mon_certificat.pfx
-srcstoretype
Type de keystore source. Dans ce cas, il s'agit du format PKCS#12. PKCS12
-srcstorepass
Mot de passe de votre fichier de keystore source ( .pfx
).motdepasse_du_pfx
-destkeystore
Spécifie le fichier keystore de destination ( keystore.jks
) où le certificat SSL sera importé.C:\\Program Files\Gespage\GespageCore\server\config\keystore.jks
-deststoretype
Type de keystore de destination. Pour Java KeyStore, il s'agit de JKS. JKS
-deststorepass
Mot de passe du keystore de destination ( keystore.jks
). La valeur par défaut estchangeit
.changeit
-destalias
Alias que le certificat SSL aura dans le keystore de destination ( keystore.jks
). Il est crucial d'utilisers1as
car c'est l'alias par défaut attendu par Payara.s1as
-keypass
Mot de passe de la clé privée dans le keystore de destination. Par défaut, il est identique au mot de passe du keystore ( changeit
).changeit
Note importante : L'option
-srcalias
n'est généralement pas nécessaire lors de l'importation d'un fichier.pfx
contenant un seul certificat et sa clé.keytool
importera automatiquement l'entrée de clé. Si votre fichier.pfx
contient plusieurs entrées, vous devrez identifier l'alias correct à importer en listant le contenu du fichier.pfx
avec la commandekeytool -list -pkcs12 -keystore "C:\\chemin\\vers\\certificat.pfx" -storepass votre_mot_de-passe_pfx -v
.
5. Vérification de l'Importation
Après l'importation, il est essentiel de vérifier que les certificats ont été correctement ajoutés aux keystores.
5.1. Vérification du Certificat CA dans cacerts.jks
⌨️ Exécuter la commande suivante dans l'invite de commandes (toujours dans le répertoire Java) :
keytool -list -v -keystore "C:\\Program Files\Gespage\GespageCore\\erver\config\cacerts.jks" -storepass changeit -alias nom_unique_ca
- ?️ Remplacez
"nom_unique_ca"
par l'alias que vous avez utilisé lors de l'importation du certificat CA. - ? Vérifiez les détails du certificat, notamment l'émetteur et la date d'expiration.
- ?️ Remplacez
5.2. Vérification du Certificat SSL dans keystore.jks
⌨️ Exécuter la commande suivante :
keytool -list -v -keystore "C:\\Program Files\Gespage\GespageCore\server\config\keystore.jks" -storepass changeit -alias s1as
- ? Assurez-vous que le type d'entrée est
PrivateKeyEntry
, indiquant que la clé privée a été importée avec le certificat. - ? Vérifiez que les dates de validité du certificat sont correctes et que les informations de l'émetteur et du propriétaire correspondent à votre certificat SSL.
- ? Assurez-vous que le type d'entrée est
6. Configuration du Port HTTPS (443) sur Gespage (Payara)
Pour que Gespage écoute sur le port HTTPS standard (443), vous devez modifier le fichier de configuration de Payara.
? Localiser le fichier
domain.xml
de Payara :C:\\Program Files\\Gespage\GespageCore\server\payara41\glassfish\domains\domain1\config\domain.xml
? Ouvrir le fichier
domain.xml
avec un éditeur de texte en tant qu'administrateur.➕ Rechercher la section
<network-listeners>
et ajouter un nouveau listener pour le port 443 :<network-listeners> <network-listener protocol="http-listener-1" port="7180" name="http-listener-1" thread-pool="http-thread-pool" transport="tcp"></network-listener> <network-listener protocol="http-listener-2" port="7181" name="http-listener-2" thread-pool="http-thread-pool" transport="tcp"></network-listener> <network-listener protocol="http-listener-2" port="443" name="http-listener-3" thread-pool="http-thread-pool" transport="tcp"> <ssl client-auth-enabled="false" certificate-nickname="s1as"></ssl> </network-listener> <network-listener protocol="admin-listener" port="4848" name="admin-listener" thread-pool="admin-thread-pool" transport="tcp"></network-listener> </network-listeners>
- ⚠️ Important : Le
protocol
doit êtrehttp-listener-2
pour indiquer une connexion HTTPS. - ➕ Ajoutez l'élément
<ssl client-auth-enabled="false" certificate-nickname="s1as"></ssl>
à la définition du listener pour le port 443.certificate-nickname="s1as"
assure que le certificat importé est utilisé pour cette connexion.
- ⚠️ Important : Le
➕ Rechercher la section
<virtual-server id="server">
et ajouter le nouveau listener (http-listener-3) à l'attributnetwork-listeners
:<virtual-server network-listeners="http-listener-1,http-listener-2,http-listener-3" id="server"> <property name="send-error_1" value="code=404 path=C:/Program%20Files/Gespage/GespageCore/server/config/docroot/404.html"></property> <property name="docroot" value="C:/Program Files/Gespage/GespageCore/server/config/docroot"></property> </virtual-server>
? Enregistrer les modifications apportées au fichier
domain.xml
.
7. Redémarrage de Gespage
Pour que les modifications de configuration soient prises en compte, vous devez redémarrer le service :
Gespage Application Server.
⏳ L'arrêt et le redémarrage du service peuvent prendre quelques minutes. Une interruption de service d'environ 15 minutes est à prévoir.
8. Vérification Finale
Après le redémarrage, vérifiez que l'interface web de Gespage est accessible via HTTPS sur le port 443.
- Ouvrir un navigateur web ? et accéder à
https://<adresse_ip_ou_nom_de_domaine_du_serveur>
. - ✅ Assurez-vous que le navigateur affiche un cadenas ? indiquant une connexion sécurisée et que le certificat affiché est bien celui que vous avez importé.
9. Recommandations et Sécurité
- Modifier les mots de passe par défaut des fichiers
keystore.jks
etcacerts.jks
immédiatement après l'importation pour renforcer la sécurité. Utilisez des mots de passe robustes et uniques. Vous pouvez modifier les mots de passe avec la commandekeytool -storepasswd
. - Sauvegarder les fichiers de keystore (
keystore.jks
etcacerts.jks
) après toute modification. - Restreindre l'accès au fichier
domain.xml
pour éviter toute modification non autorisée. - Surveiller régulièrement la date d'expiration du certificat SSL et planifier son renouvellement en temps voulu pour éviter toute interruption de service.