WSO2 Enterprise Integration est un des produits phare de la plateforme Open Source WSO2. Il permet aux experts en intégration d’entreprise de concevoir, adapter, et sécuriser des solutions d’intégration sophistiquées pour atteindre l’agilité numérique. Modulaire et extensible, le produit repose sur la plateforme Carbon.

Des milliers d’entreprises utilisent WSO2 EI au niveau mondial et la société compte des références aussi prestigieuses qu’Ebay (plus d’1 milliard de transactions par jour) ou American Express.

Prenons l’exemple de www.google.com : notre système WSO2 Entreprise Integration se trouve dans le répertoire « /usr/wso2ei ».

Pour la démonstration on garde le mot de passe par défaut du client truststore.jks :

Dans ce point, nous allons voir comment intégrer ou modifier un certificat externe dans WSO2 Entreprise Integration.

WSO2 utilise deux keystore paramétrés dans le fichier :

« /usr/wso2ei/conf/axis2/axis2.xml »

– Le « client-truststore.jks» qui contiendra les clés publiques des clients avec lesquels nous souhaitons communiquer

– Le « keystore.jks » qui contiendra les clés privées de notre serveur afin qu’il communique avec le reste du monde.

Nous allons voir comment ajouter une clé de certificat dans le “client-truststore.jks“. Cette opération est nécessaire lorsque l’on doit communiquer en « ssl » avec un site distant.

On récupère d’abord le certificat public du site distant et on l’insère dans le keystore client afin de sécuriser les échanges sans avoir besoin de faire ce travail à l’initialisation de la première communication. Cela pose un problème lorsque le certificat change et plus particulièrement quand le certificat n’est valable que 3 mois comme ceux de Let’s Encrypt.

Prenons l'exemple de www.google.com : notre système WSO2 Entreprise Integration se trouve dans le répertoire « /usr/wso2ei ».

Pour la démonstration on garde le mot de passe par défaut du client truststore.jks :

wso2carbon

Les certificats clients sont dans le jks :

/usr/wso2ei/repository/resources/security/client-truststore.jks

Pour voir le contenu de ce jks il suffit de rentrer le code suivant :

Pour voir le contenu de ce jks il suffit de rentrer le code suivant :

keytool -list -v -keystore /usr/wso2ei/repository/resources/security/client-truststore.jks -storepass wso2carbon

Si l’on souhaite vérifier un certificat particulier :

keytool -list -v -keystore /usr/wso2ei/repository/resources/security/client-truststore.jks -storepass wso2carbon | grep Alias | nom du certificat 

 Si c'est un renouvellement de certificat il faut avant tout le supprimer du keystore :

keytool -delete -alias "www.google.com" -keystore /usr/wso2ei/repository/resources/security/client-truststore.jks -storepass wso2carbon

Ensuite il faut le récupérer du site que l'on veut insérer dans le Keystore et le mettre dans le répertoire « /tmp précédemment » :

cd /tmp openssl s_client -showcerts -connect www.google.com:443 </dev/null 2>/dev/null|openssl x509 -outform PEM > www.google.com.pem 

Enfin réaliser l'intégration dans le Keystore :

keytool -import -file www.google.com.pem -alias "www.google.com" -keystore /usr/wso2ei/repository/resources/security/client-truststore.jks -storepass wso2carbon

Il ne vous reste plus qu’à relancer WSO2          :

stemctl restart wso2ei

Pour voir le contenu de ce jks il suffit de rentrer le code suivant :

Si l’on souhaite vérifier un certificat particulier :

keytool -list -v -keystore /usr/wso2ei/repository/resources/security/client-truststore.jks -storepass wso2carbon | grep Alias | nom du certificat

Si c'est un renouvellement de certificat il faut avant tout le supprimer du keystore :

keytool -delete -alias "www.google.com" -keystore /usr/wso2ei/repository/resources/security/client-truststore.jks -storepass wso2carbon

Ensuite il faut le récupérer du site que l'on veut insérer dans le Keystore et le mettre dans le répertoire « /tmp précédemment » :

cd /tmp openssl s_client -showcerts -connect www.google.com:443 </dev/null 2>/dev/null|openssl x509 -outform PEM > www.google.com.pem

Enfin réaliser l'intégration dans le Keystore :

keytool -import -file www.google.com.pem -alias "www.google.com" -keystore /usr/wso2ei/repository/resources/security/client-truststore.jks -storepass wso2carbon

Il ne vous reste plus qu’à relancer WSO2          :

systemctl restart wso2ei

 

Pour voir le contenu de ce jks il suffit de rentrer le code suivant :

Si l’on souhaite vérifier un certificat particulier :

keytool -list -v -keystore /usr/wso2ei/repository/resources/security/client-truststore.jks -storepass wso2carbon | grep Alias | nom du certificat

Si c'est un renouvellement de certificat il faut avant tout le supprimer du keystore :

keytool -delete -alias "www.google.com" -keystore /usr/wso2ei/repository/resources/security/client-truststore.jks -storepass wso2carbon

Ensuite il faut le récupérer du site que l'on veut insérer dans le Keystore et le mettre dans le répertoire « /tmp précédemment » :

cd /tmp openssl s_client -showcerts -connect www.google.com:443 </dev/null 2>/dev/null|openssl x509 -outform PEM > www.google.com.pem

Enfin réaliser l'intégration dans le Keystore :

keytool -import -file www.google.com.pem -alias "www.google.com" -keystore /usr/wso2ei/repository/resources/security/client-truststore.jks -storepass wso2carbon

Il ne vous reste plus qu’à relancer WSO2          :

systemctl restart wso2ei