Lorsque vous démarrez le démon en mode TLS les communications sont chiffrées entre le client et le serveur. Le protocole utilisé est TLS en version 1.2.
Ce mode de chiffrement nécessite de fournir un certificat et une clé de chiffrement côté serveur. Le certificat doit être signé par une autorité de certification reconnue par les postes clients.
Le client impose la vérification de la chaîne de certificats. Le client Windows utilise automatiquement les certificats du magasin "Autorités de certification racine de confiance" de Windows, le client Java utilise le "truststore"» configuré au niveau de la JVM (par défaut "lib/security/cacerts" ou "jre/lib/security/cacerts" en fonction de la version de Java), ou le store spécifié via les paramètres standard de la ligne de commande Java (Djava.net.ssl.trustStore, Djava.net.ssl. trustStorePassword, Djava.net.ssl. trustStoreType).
Cela signifie que si vous souhaitez utiliser un certificat non signé ou un certificat signé par une autorité de confiance privée à l'entreprise, celui-ci devra être importé dans le magasin de certificats du poste client.
L'authentification client (envoi et authentification par le serveur d'un certificat spécifique au client) n'est pas supportée dans la version initiale.
Remarque : pour les démons Windows et AS/400 il est possible d'activer une trace de débogage spécifique en activant le logger "com.hardis.middleware_tls" au niveau DEBUG dans la configuration de LOG4C.
Création d'une autorité de certification et d'un certificat serveur
Cet exemple de configuration utilise "openssl" pour générer une chaîne de certificats basée sur une autorité de certification privée.
Placez-vous dans un nouveau répertoire et créez le fichier "middleware.ext" avec le contenu suivant :
authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment |
Création de l'autorité privée
Création de la clé privée de l'autorité (un mot de passe sera demandé pour la protection de la clé) :
openssl genrsa -des3 -out myCA.pkcs1.key 2048 |
Création du certificat de l'autorité privée (ici valable 5 ans) :
openssl req -x509 -new -nodes -key myCA.pkcs1.key -sha256 \ -days 1825 -out myCA.crt |
Création d'un certificat pour le serveur Middleware
Création de la clé privée du serveur :
openssl genrsa -out adelia-middleware.pkcs1.key 2048 |
Création d'une requête de signature pour générer le certificat du démon via l'autorité de certification :
openssl req -new -key adelia-middleware.pkcs1.key \ -out adelia-middelware.csr |
Signature de la clé privée du serveur par l'autorité de certification :
openssl x509 -req -in adelia-middelware.csr -CA myCA.crt \ -CAkey myCA.pkcs1.key -CAcreateserial \ -out adelia-middleware-cert.crt -days 1825 -sha256 \ -extfile middleware.ext |
Conversion de la clé au format PKCS-8 pour l'utilisation par le démon :
openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt \ -in adelia-middleware.pkcs1.key \ -out adelia-middleware-key.key |
A l'issue de cette opération, les fichiers "adelia-middleware-cert.crt" et "adelia-middleware-key.key" peuvent être utilisée pour démarrer le démon.
Le fichier myCA.crt doit être importé dans le magasin de certificats de confiance sur les postes client.
Windows :
-
- Double-clic sur le fichier .crt dans l'explorateur.
- Sélectionnez l'option Installer un certificat.
- Sélectionnez l'option Utilisateur actuel ou Ordinateur local en fonction de votre configuration.
- Sélectionnez l'option Placer tous les certificats dans le magasin, puis indiquez le magasin Autorités de certification racines de confiance.
- Validez par Terminer.
Java :
Exécutez la commande suivante pour importer le certificat dans le magasin de certificats par défaut de Java (le mot de passe par défaut est "changeit") :
keytool -importcert -file myCA.crt -keystore [path_jre]\lib\security\cacerts -alias "myCA" |