首页 > Java > java教程 > 正文

如何解决使用 TLS 会话重用连接到 FTPS 服务器时出现的'握手期间远程主机关闭连接”错误?

Linda Hamilton
发布: 2024-11-12 17:23:02
原创
1058 人浏览过

How Can I Resolve the

使用 TLS 会话重用连接到 FTPS 服务器

当尝试与 FTPS 服务器建立连接时,客户端可能会遇到“远程握手期间主机关闭连接”错误。当服务器要求将相同的 TLS 会话用于控制连接和数据连接时,通常会发生这种情况。 Apache Commons Net 的 FTPS 实现本身并不支持此行为。

要解决此问题并确保 TLS 会话重用:

  1. 实现自定义 FTPSClient:

    • 重写 FTPSClient 类中的 prepareDataSocket 方法以重用 TLS 会话。
    • 实现与 Cyber​​duck 的 FTPClient.java 中类似的逻辑。
  2. 重写 DefaultFtpsSessionFactory:

    • 重写 DefaultFtpsSessionFactory 中的 createClientInstance() 方法。
    • 返回您的自定义 FTPSClient
  3. 处理 JDK 8u161 问题:

    • 将“jdk.tls.useExtendedMasterSecret”系统属性设置为 false解决 JDK 8u161 中的兼容性问题。
  4. 使用 SessionsByHostAndPort:

    • 在较新的 Java 版本上,使用sessionByHostAndPort 映射在 SSLSessionContext 中而不是 sessionHostPortCache 中进行会话重用。
  5. 绕过 Android SDK 限制(可选):

    • 如果正在使用Android,绕过 SDK 限制,通过反射访问字段。

请记住,此解决方案只是一种解决方法,可能无法提供长期修复。

以上是如何解决使用 TLS 会话重用连接到 FTPS 服务器时出现的'握手期间远程主机关闭连接”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板