Java 不同端口的 SSLSocket 重用会话

Java SSLSocket reuse session for different port

我正在使用 org.apache.commons.net.ftp.FTPSClient 从外部 ftp 服务器下载文件。该服务器不是由我管理的,它配置为启用选项“require_ssl_reuse”。这意味着,据我所知,同一会话必须用于命令和数据连接。

对于命令连接,使用端口 21,但对于数据,该端口是从未使用的端口范围内选择的。因此,当成功连接到服务器后,我尝试 yo list directory 由于此限制,连接已关闭。

java 客户端在内部使用 SSLSockets。是否可以为相同的 IP 但不同的端口重用 SSLSession?有人知道支持 ssl 会话重用的 java 客户端吗?

提前致谢!

我找到解决办法了!它是来自 Cyber​​duck 核心的 FTPClient class。它从 org.apache.commons.net 扩展 FTPSClient 并重用会话,使用 java 反射将其注入 SSLSocket。

SSL 会话未绑定到特定端口,并且 JSSE 已经支持会话恢复。

这应该开箱即用。

你有证据证明它不是吗?