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.
Sorry, the comment form is closed at this time.