Importer un certificat SSL pour un serveur tiers dans Visiativ Process : Résolution de problèmes et instructions

1. Problématique

Depuis votre application Visiativ Process, vous avez besoin de vous connecter à un serveur tiers (Active Directory, serveur d’API, etc…) en utilisant le protocole SSL (exemple : si vous devez atteindre un serveur d’API en HTTPS, ou en cas de synchronisation avec votre Active Directory en LDAPS).

Après avoir configuré votre connexion, celle-ci ne s’établit pas, et vous retrouver dans les logs du serveur des traces de la forme suivante :

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

2. Solution

Visiativ Process étant une application Java, afin de pouvoir se connecter à un serveur tiers, il vous faut importer le certificat SSL contenant la clé publique dans le TrustStore de la JVM exécutant l’application Visiativ Process. Java utilise par défaut un TrustStore dénommé cacerts.

Voici la marche à suivre :

2.1 Récupérer le certificat SSL du serveur tiers

Contactez le fournisseur en charge du serveur auquel vous souhaitez vous connecter, et demandez-lui de vous fournir le certificat SSL, au format PEM encodé en base 64. Usuellement, le certificat aura une des extensions suivantes : .pem, .cer, .crt, .key. Vous devrez déposer le certificat dans un répertoire de voztre serveur.

S’il s’agit d’un service web, vous pouvez récupérer le certificat directement depuis le navigateur :

Sous Firefox :

Sous Edge :

Sous Chrome :

2.2 Importer le certificat dans votre truststore

 

2.2.1 Localiser votre Visiativ Process
Repérez sur votre serveur dans quel répertoire est installé l’application Visiativ Process. Par défaut, les chemins d’installation sont les suivants :

  • Depuis la version 16 : C:MoovappsProcess
  • Depuis la version 18 : C:VisiativProcess

Pour vous aider à localiser ce répertoire, vous pouvez lancer la commande suivante en tant qu’administrateur :

wmic process where “Name= ‘java.exe’ and CommandLine like ‘%jboss%’” get CommandLine

Pour la suite de ce tutoriel, nous désignerons ce répertoire d’installation par VISIATIV_PROCESS_HOME.

 

2.2.2 importer le résultat avec keytool
Placez-vous dans le répertoire VISIATIV_PROCESS_HOMEjdkbin

Afin d’importer le certificat, vous devrez adapter et exécuter la commande suivante :

keytool -import -trustcacerts -noprompt -storepass changeit -file “C:tempwww.visiativ.com.crt” -alias “www.visiativ.com” -keystore C:VisiativProcessjdkjrelibsecuritycacerts

Paramètre Description
file Indiquez ici le chemin complet vers le certificat à importer
alias Votre certificat sera affilié à l’alias indiqué. Cet alias n’a pas d’importance mais devra être unique dans votre TrustStore. Une bonne pratique est de mettre le nom du domaine, et la date d’expiration du certificat.

 

Exemple : www.visiaitv.com nov. 2023

keystore C’est le chemin du TrustStore dans lequel on souhaite importer le certificat. Ce chemin doit correspondre à VISIATIV_PROCESS_HOMEjdkjrelibsecuritycacerts

 

Astuce : vous pouvez supprimer un certificat de votre TrustStore à partir de son nom d’alias en lançant la commande suivante :

keytool -delete -noprompt -trustcacerts -alias “www.visiativ.com” -keystore C:VisiativProcessjdkjrelibsecuritycacerts -storepass changeit

 

2.2.3 Redémarrer l’application Visiativ Process
Afin que vos modifications soient prises en compte, l’application Visiativ Process doit être redémarrée.

Redémarrez simplement le service Windows associé si l’application tourne en service, ou bien relancez l’application en ligne de commande.

Auteur de l’article

Thomas Paumier, Application Engineer chez Visiativ Switzerland