2017-05-22 13 views
3

マイコード(とき実行私は-Dhttps.protocols=TLSv1.2 VM引数を使用)を使用して、FTPサーバへの接続時に "リモートホストはハンドシェイク中に、接続を閉じて":コモンズネットFTPSClient

FTPSClient ftpClient = new FTPSClient("TLS", false); 
ftpClient.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out))); 
ftpClient.setAuthValue("TLS"); 

ftpClient.connect("myhost", 990); 
ftpClient.login("mylogin", "mypassword"); 

スタックトレース:

をjavax.net.ssl.SSLHandshakeException:ハンドシェイク中にリモートホストが接続をクローズした
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:992)
java.io.EOFException:によって引き起こさ //あまりにも多くの痕跡...
SSLはsun.securityで(InputRecord.java:505)sun.security.ssl.InputRecord.readで誤っ
をシャットダウン
ピア.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
...もっと33

のWinSCPからログ(私はWinSCPのを使用してファイルを送信することができます):

536のコピー1つのファイル/ディレクトリリモートディレクトリ "/" 536 PrTime: はい。 PrRO:いいえ。 Rght:rw-r-r--; PrR:いいえ(いいえ)。 FnC:N; RIC:0100; 履歴書:S(102400); CalcS:はい。マスク: 536 TM:B; ClAr:いいえ。 RemEOF:いいえ。 RemBOM:いいえ。 CPS:0; NewerOnly:いいえ。 InclM:; ResumeL:0 536 AscM:*。* html; * .htm; *。TXT; * .php; * .php3; * .cgi; * .c; * .cpp; * .h; * .pas; * .bas; * .tex; * .pl; * .js; .htaccess; * .xtml; * .css; * .cfg; * .ini; * .sh; * .xml 539ファイル: 'C:\ Users \ trescon.jramos \ Documents \ cliente-dados.sql' [2016-10-06T16:34:29.298Z] [4869] 557コピー "C:\ Users \ trescon .jramos \ Documents \ cliente-dados.sql "からリモート ディレクトリが開始されました。 560バイナリ転送モードが選択されています。 560 Iniciando carregamento de C:\ Users \ trescon.jramos \ Documents \ cliente-dados.sql 560 TYPE I 562 200 Iタイプに設定563 PASV 568 227受動態にする モード(10,28,14,218,250,0)569 STOR cliente-dados.sql 569 Conectando 10.28.14.218:64000 ... 575 150 "/cliente-dados.sql"というサーバーへのファイルアップロード用のデータチャネルを開く579セッションIDを再利用579 を使用するTLSv1.2、暗号TLSv1/SSLv3:ECDHE-RSA-AES256-GCM-SHA384,2048ビット RSA、ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx = ECDH Au = RSA Enc = AESGCM(256)Mac = AEAD 580 Conexus SSLの設定586 226 "/cliente-dados.sql" 586 MFMT 20161006163429 cliente-dados.sql 590 213 modify = 20161006163429;正常に転送されました。行わ/cliente-dados.sql 590 Carregamento BEM-sucedido 591転送: 'C:\ Users \ユーザーtrescon.jramos \ドキュメント\ cliente-dados.sql' [4869]

+0

次の3つの暗号化レベルを使用してサーバーをテストしている場合、私はあなたの質問に答えるために、それは有用であろう:[FTPオンラインテスター](https://ncomputers.org/ftptest) – ncomputers

答えて

0

あなたはポート990に接続されています暗黙のFTPSポートは何ですか。しかし、falseisImplicit引数にFTPSClient constructorとしています。

どちらかあなたが本当に暗黙的FTPSを使用したい場合は、trueを渡す:

FTPSClient ftpClient = new FTPSClient("TLS", true); 

または暗黙的なFTPSは非標準であるとして、実際に、あなたは本当に、明示的FTPSとデフォルトのFTPポート21を(使用する必要がありますがレガシー互換ハック):つまり

FTPSClient ftpClient = new FTPSClient(); 
// ... 
ftpClient.connect("myhost"); 

、あなたがFTPSを使用する必要があるすべてはFTPSClientを使用しているが、追加の引数や呼び出しは必要ありません。

+0

私が使用した場合 'FTPSClient ftpClient =新しいFTPSClient( "TLS"、true); 私はこれを受け取りました: '認識できないSSLメッセージ、平文接続? javax.net.ssl.SSLException:認識できないSSLメッセージ、平文接続? – user2133331

+0

'FTPSClient ftpClient = new FTPSClient();を使用しましたがポート990でも同じことをしました**"ハンドシェイク中のリモートホストクローズ接続 "* *エラー – user2133331

+0

ポート21を使用したときに接続タイムアウトが発生しました。 – user2133331

関連する問題