>  기사  >  Java  >  TLS 세션 재사용을 사용하여 FTPS 서버에 연결할 때 '핸드셰이크 중 원격 호스트 연결 끊김' 오류를 해결하려면 어떻게 해야 합니까?

TLS 세션 재사용을 사용하여 FTPS 서버에 연결할 때 '핸드셰이크 중 원격 호스트 연결 끊김' 오류를 해결하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-12 17:23:021054검색

How Can I Resolve the

TLS 세션 재사용을 사용하여 FTPS 서버에 연결

FTPS 서버와 연결을 시도할 때 클라이언트에 "원격" 오류가 발생할 수 있습니다. 핸드셰이크 중에 호스트 연결이 닫혔습니다." 오류가 발생했습니다. 이는 일반적으로 서버가 제어 및 데이터 연결 모두에 동일한 TLS 세션을 사용해야 할 때 발생합니다. Apache Commons Net의 FTPS 구현은 본질적으로 이 동작을 지원하지 않습니다.

이 문제를 해결하고 TLS 세션 재사용을 보장하려면:

  1. 사용자 정의 FTPS클라이언트 구현:

    • 재정의 TLS 세션을 재사용하려면 FTPSClient 클래스의 prepareDataSocket 메서드를 사용하세요.
    • Cyberduck의 FTPClient.java에 있는 것과 유사한 논리를 구현하세요.
  2. 재정의 DefaultFtpsSessionFactory:

    • DefaultFtpsSessionFactory에서 createClientInstance() 메서드를 재정의합니다.
    • 사용자 정의 FTPSClient 구현을 반환합니다.
  3. JDK 처리 8u161 문제:

    • JDK 8u161의 호환성 문제를 해결하려면 "jdk.tls.useExtendedMasterSecret" 시스템 속성을 false로 설정합니다.
  4. 사용 SessionsByHostAndPort:

    • 최신 Java 버전에서는 세션 재사용을 위해 sessionHostPortCache 대신 SSLSessionContext의 sessionByHostAndPort 맵을 사용하세요.
  5. Android SDK 제한 우회 (선택 사항):

    • Android에서 작업하는 경우 SDK 제한을 우회하여 리플렉션을 통해 필드에 액세스합니다.

이 솔루션은 다음과 같습니다. 해결 방법이며 장기적인 수정 사항을 제공하지 못할 수도 있습니다.

위 내용은 TLS 세션 재사용을 사용하여 FTPS 서버에 연결할 때 '핸드셰이크 중 원격 호스트 연결 끊김' 오류를 해결하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.