Comment se connecter au serveur FTP sur TLS / SSL (FTPS) en Java


J'ai donc cherché sur Google plus de 2 jours et je n'ai trouvé aucune réponse qui m'aide.

Je suis coincé dans la connexion au serveur FTP sur TLS/SSL (FTPS). J'utilise la bibliothèque SimpleFTP via suis capable de connecter un serveur FTP sans SSL mais je n'ai pas pu connecter FTPS.

Il me donne cette erreur à la ligne 2 (ftp.connexion),

SimpleFTP a reçu une réponse inconnue lors de la connexion au serveur FTP:
220---------- Bienvenue sur Pure-FTPd [privsep] [TLS] ----------

Et j'utilise le code ci-dessous

SimpleFTP ftp = new SimpleFTP();

// Connect to an FTP server on port 21.
ftp.connect("xxx.xxx.xxx.xxx", 21, "username", "pwd");
//getting error at (ftp.connect) above line

// Set binary mode.
ftp.bin();

// Change to a new working directory on the FTP server.
ftp.cwd("web");
ftp.disconnect();
Author: Martin Prikryl, 2016-03-30

1 answers

La classe/bibliothèque SimpleFTP ne prend pas du tout en charge TLS/SSL.


Utiliser le FTPSClient class de la bibliothèque Apache Commons Net à la place.

Voir officielles exemple pour la FTPClient classe et remplacez simplement le FTPClient avec FTPSClient.

FTPSClient ftpClient = new FTPSClient();
ftpClient.connect(host);
ftpClient.login(user, password);

La classe FTPSClient utilise par défaut un TLS/SSL explicite (recommandé). Dans de rares cas, vous avez besoin d'un TLS/SSL implicite, utilisez new FTPSClient(true).

 12
Author: Martin Prikryl, 2017-02-11 10:40:04