我正在使用org.apache.commons.net.ftp.FTPSClient从外部ftp服务器下载文件。此服务器不受我管理,并且配置了选项“ require_ssl_reuse ”。这意味着,据我所知,必须使用相同的会话进行命令和数据连接。
对于命令连接,使用端口21但是对于数据,端口是从未使用的端口范围中选择的。因此,在成功连接到服务器之后,我尝试使用列表目录,由于此限制,连接已关闭。
java客户端在内部使用SSLSockets。是否可以将SSLSession重用于相同的IP但不同的端口?有人知道支持ssl会话重用的java客户端吗?
提前致谢!
答案 0 :(得分:1)
我找到了解决方案!这是来自Cyberduck核心的FTPClient class。它从org.apache.commons.net扩展了FTPSClient并重用Session,使用java反射将其注入SSLSocket。
答案 1 :(得分:1)
SSL会话未绑定到特定端口,JSSE已支持会话恢复。
这应该是开箱即用的。
你有证据表明不是吗?