Connexion talend FTPS avec certificat de confiance

Connexion talend FTPS avec certificat de confiance

Talend FTPS

 

Nous avons perdu quelques heures cette semaine pour créer une connexion Talend FTPS, ie pour nous connecter au serveur FTPS fourni par un de nos clients avec notre plateforme de data integration Talend. La configuration du composant Talend tFTPConnection n’a pas été si intuitive et les quelques discussions présentes sur les forums ne nous ont pas été d’un grand secours non plus, d’où l’idée de ce rapide billet.

 

No trusted certificate found

 
 

 

Nous avons d’abord vérifié que les informations de connexion fournies (hôte, login, mot de passe) nous permettaient de nous connecter au serveur et d’effectuer les uploads / downloads de fichiers comme souhaité. Que ce soit avec Filezilla ou Winscp, pas de problème à ce stade. L’idée est ensuite de faire de même sur notre plateforme Talend. Le job est très simple, avec seulement 2 composants :  tFPTConnection pour créer la connexion au serveur et tFTPPut pour envoyer un ficher vers ledit serveur.

Le panneau de configuration du composant tFTPConnection se présente ainsi :

 

On voit que l’on peut spécifier facilement le protocole utilisé FTP, SFTP ou FTPS. La sélection de l’option FTPS fait apparaitre deux nouveaux champs « Fichier keystore » et « Mot de passe du Keystore » et c’est là que les choses sont devenues un peu plus subtiles. En effet, lors des essais de connexion avec Filezilla ou Winscp, à aucun moment on nous demande d’importer un fichier *.jks, la tentation est donc forte d’exécuter le job sans joindre de fichier. Une telle audace aboutira à l’erreur suivante :

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found

Le terme keystore prête à confusion, il s’agit donc en fait d’un trustStore dans lequel on vient ajouter le certificat du serveur FTP. On peut demander ce certificat à l’administrateur du serveur FTPS mais dans la majorité des cas il faudra le récupérer par nos propres moyens.

Récupération du certificat distant

 

Pour se faire on utilise la commande openssl dans la forme suivante :

openssl s_client -connect [adresse hôte]:[port] -starttls ftp </dev/null 2>/dev/null|openssl x509 -outform PEM >mycertfile.pem

Une fois le certificat en mycertfile.pem créé, nous le convertissons en .cer avec la commande suivante :

openssl x509 -inform PEM -in mycertfile.pem -outform DER -out mycertfile.cer

Il se peut qu’il y ait une commande plus élégante mais celle-ci a le mérite de fonctionner.

Création du keystore

 

Il suffit ensuite de créer le fichier jks soit à l’aide de la commande keytool fourni avec le JDK :

keytool -import -file your_ftp_server_certificate.crt -keystore myTrustStore.jks

soit sous windows avec une application comme Keystore explorer :

Création d’un nouveau magasin de donnée >  Outils > Import d’un certificat de confiance

Configuration du composant tFTPConnection dans Talend

 

Il ne reste plus qu’à sélectionner le fichier jks dans l’espace de configuration du composant TFTPConnection et à exécuter le job pour vérifier que notre connexion Talend FTPS fonctionne désormais correctement.

 

No Comments

Sorry, the comment form is closed at this time.

en_USEnglish