2016-03-30 71 views
5

私はSOを検索して2日以上のグーグルで検索しました。JavaでTLS/SSL(FTPS)サーバー経由でFTPに接続する方法

TLS/SSL(FTPS)サーバー経由でFTPに接続できません。 SimpleFTPライブラリを使用してSSLなしでFTPサーバーに接続できますが、FTPSに接続できませんでした。

それはライン2(ftp.connect)で私は、このエラーを与えている

SimpleFTP received an unknown response when connecting to the FTP server:
220---------- Welcome to 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(); 
+0

「SSLなし」の接続方法を教えてください。なぜあなたはApache Commons Net 'FTPClient'ではなくSimpleFTPを使用していますか? –

+0

Apache Commons Net FTPClientを使用して接続する方法がわかりません。サンプルコードを投稿すると大きな助けになります。 –

+0

@MartinPrikrylご返信ありがとうございます。Apache Commons Net FTPClientを使用してFTPSサーバに接続する例を共有してください。 –

答えて

8

SimpleFTPクラス/ライブラリがでTLS/SSLをサポートしていません。すべて。


代わりApache Commons Net libraryからFTPSClient classを使用してください。

official example for the FTPClient classを参照し、FTPClientFTPSClientに置き換えてください。

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

明示的なTLS/SSL(推奨)へFTPSClientクラスのデフォルト値。まれに暗黙的なTLS/SSLが必要な場合は、new FTPSClient(true)を使用してください。

+0

私はこれを試してみましょう、あなたに知らせてください..非常にありがとう。 –

+0

私はFTPSClient con = new FTPSClient(true)と言ったように上記の方法を試しました。 con.connect( "ftp.domain.com"); //このエラーは、「ftp.domain.com/xxx.xxx.xx.xx(ポート990)への接続に失敗しました:接続に失敗しました:ECONNREFUSED(接続が拒否されました) –

+0

暗黙のモードを試していますか?推奨明示モードを試してみてください。 –

関連する問題