首頁  >  文章  >  Java  >  如何使用 Apache Commons Net 在 FTPS 中重複使用相同的 TLS 會話進行資料連線?

如何使用 Apache Commons Net 在 FTPS 中重複使用相同的 TLS 會話進行資料連線?

Linda Hamilton
Linda Hamilton原創
2024-11-10 06:58:02811瀏覽

How to Reuse the Same TLS Session for Data Connections in FTPS using Apache Commons Net?

如何使用 FTPS 建立相同 TLS 會話的資料連線?

為控制和資料連線維護相同的 TLS 會話是 FTPS 中至關重要的安全措施。某些 FTP 伺服器強制執行此要求,從而在資料連線嘗試建立單獨的 TLS 會話時導致問題。

在 Apache Commons Net 中,此問題可能是由於其預設配置而出現的,該配置假定每個主機都有一個新會話/連接埠組合。要解決此問題,請考慮採取以下措施:

  1. 驗證伺服器合規性:確保 FTPS 伺服器強制實施相同的 TLS 會話要求。檢查伺服器文件或使用 FileZilla 等客戶端進行確認。
  2. 自訂 Apache Commons Net: 實作覆蓋「_prepareDataSocket_」方法的自訂 FTPSClient。請參閱 Cyber​​duck 的 FTPClient.java 程式碼,以了解如何設定 TLS 會話快取和重複使用的指南。
  3. 重寫Spring Integration DefaultFtpsSessionFactory: 建立DefaultFtpsSessionFactory 的自訂子類別並重寫「createClientInstance()」 " 傳回修改後的FTPSClient 的方法 將以下行添加到您的程式碼中以停用擴展主金鑰擴展,這可能會導致相容性問題:
  4. System.setProperty("jdk .tls.useExtendedMasterSecret", "false");
使用sessionByHostAndPort欄位:
    對於較新的Java版本,使用「sessionsByHostAndPort」欄位而不是「sessionHostPortCache」來存取TLS會話快取。
  1. 繞過Android 上的SDK限制:在Android 裝置上,您可以需要繞過SDK 限制以使用反射存取私有欄位。 ,確保與需要它的FTPS 伺服器的兼容性.

以上是如何使用 Apache Commons Net 在 FTPS 中重複使用相同的 TLS 會話進行資料連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn