当前位置: 首页 > 知识库问答 >
问题:

使用Commons Net FTPSClient连接到FTP服务器时的“握手期间远程主机关闭连接”

田柏
2023-03-14
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:握手过程中远程主机关闭连接
在sun.security.SSL.sslsocketimpl.readRecord(sslsocketimpl.java:992)
//太多跟踪...
由:java.io.eofException:SSL peer错误关闭
在sun.security.SSL.inputrecord.read(inputrecord.java:505)

来自WinSCP的日志(我可以使用WinSCP发送文件):

536将1个文件/目录复制到远程目录“/”536 prtime:是;PRRO:没有;RHT:RW-R--R-;PRR:否(否);FNC:N;RIC:0100;简历:S(102400);Calcs:是;面具:。536 tm:b;CLAR:没有;Remeof:没有;伦博姆:没有;CPS:0;Neweronly:不;Inclm:;Resumel:0536 ASCM:*.*html;*.htm;*.txt;*.php;*.PHP3;*.CGI;*.c;*.CPP;*.h;*.考绩;*.BAS;*.特克斯;*.PL;*.JS;.htaccess;*.xtml;*.CSS;*.CFG;*.INI;*.sh;*.xml 539文件:'C:\users\trescon.jramos\document\cliente-dados.sql'[2016-10-06t16:34:29.298z][4869]557开始将“C:\users\trescon.jramos\document\cliente-dados.sql”复制到远程目录。选择了560二进制传输模式。560 Iniciando carregamento de C:\users\trescon.jramos\documents\cliente-dados.sql 560 TYPE I 562 200 TYPE设置为I 563 PASV 568 227进入被动模式(10,28,14,218,250,0)569 STOR cliente-dados.sql 569 Conectando a 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.2kx=ECDH AU=RSA ENC=AESGCM(256)MAC=AEAD 580 Conex;/cliente-dados.sql 590 Carregamento bem-Sucedido 591传输完成:'C:\users\trescon.jramos\documente\cliente-dados.sql'[4869]

共有1个答案

丰博
2023-03-14

您正在连接到端口990,这是一个隐式FTPS端口。但是,您正在将false传递给FTPSClient构造函数的Isimplicit参数。

如果您真的想使用隐式FTPS,请传递true:

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

或者实际上,您应该真正使用显式FTPS和默认FTP端口21(因为隐式FTPS是非标准的遗留兼容性黑客):

FTPSClient ftpClient = new FTPSClient();
// ...
ftpClient.connect("myhost");
 类似资料:
  • 论坛上充斥着这个问题,但我找不到解决办法。我尝试连接WS,但没有成功。我试图更新cacerts文件,但没有效果。 日志是: 谢谢你的帮助

  • 我试图连接到一个办公室365邮箱通过IMAP协议通过javamail API读取电子邮件从我的java应用程序 当连接时,它会抛出此 下面是我正在使用的代码 我不明白问题是什么,无论如何可以建议问题是什么。

  • 问题内容: 我收到javax.net.ssl.SSLHandshakeException:当我尝试通过Internet对Web服务进行HTTPS发布时,握手异常期间远程主机关闭了连接。但是相同的代码可用于其他Internet托管的Web服务。我尝试了很多事情,没有任何帮助。我在这里发布了示例代码。谁能帮我解决这个问题? 完整的堆栈跟踪: 实际上,这里有两种情况。当我作为独立的Java程序工作时,会

  • 我正在尝试使用appium(ver.1.5.3)在mac上自动运行android应用程序。我得到以下提到的错误。请帮帮忙。

  • 问题内容: 在我的Web应用程序中,我使用的是签名为jar的applet,并且该applet在jre 1.6和1.7之前运行良好。但是在安全弹出窗口和applet阻止错误之后,我们不得不购买了Java代码签名证书。 我已经成功签署了这个applet jar,并且此applet在HTTP协议上没有任何问题地运行。如果我在HTTPS上打开此applet,它将开始提供SSLHandshakeExcept

  • 感谢您抽出时间阅读我的问题-我正在使用EclipseIDE。我希望Jsoup连接https url-https://www.icegate.gov.in/使用 但它在线程“main”javax中给出了错误,而当我对其他https(如linkedin)使用相同的代码时,它就工作了。。。我不知道如何解决这个问题。 我获得了该网站的证书,并安装在我的jre/lib/security文件夹中,但它对我也没