1. ホーム
  2. java

[解決済み] JavaでFTP over TLS/SSL(FTPS)サーバーに接続する方法

2022-01-29 23:33:02

質問事項

FTP over TLS/SSL (FTPS) サーバーへの接続で行き詰っています。私はSSLなしでFTPサーバに接続することができるを通してSimpleFTPライブラリを使用していますが、FTPSに接続することができませんでした。

2行目(ftp.connect)でこのエラーが発生します。

SimpleFTP は FTP サーバーへの接続時に不明な応答を受け取りました。
220---------- Pure-FTPd [privsep] [TLS] へようこそ ----------。

そして、以下のコードを使用しています。

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();

解決方法は?

その SimpleFTP クラス/ライブラリは、TLS/SSL を全くサポートしていません。


を使用します。 FTPSClient クラス から Apache Commons Net ライブラリ の代わりに

をご覧ください。 の正式な例です。 FTPClient クラス に置き換え、単に FTPClientFTPSClient .

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


FTPSClient クラスのデフォルトは明示的なTLS/SSLです(推奨)。まれに暗黙のTLS/SSLが必要な場合は、以下のようにします。 new FTPSClient(true) .