>  기사  >  Java  >  ## HTTPS 웹 서비스에 액세스할 때 Java 클라이언트에서 \"PKIX 경로 작성 실패\" 오류가 발생하는 이유는 무엇입니까?

## HTTPS 웹 서비스에 액세스할 때 Java 클라이언트에서 \"PKIX 경로 작성 실패\" 오류가 발생하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-26 17:52:03375검색

## Why does my Java client get a

PKIX 경로 구축 실패: 요청한 대상에 대한 유효한 인증 경로를 찾을 수 없음

질문:

Java 클라이언트를 사용하여 특정 HTTPS 웹 서비스에 액세스하려고 하면 다음 예외가 발생합니다.

java.lang.RuntimeException: PKIX path building failed: unable to find valid certification path to requested target

답변:

이 예외는 서버에서 제공하는 인증서 체인 문제로 인해 Java 클라이언트가 웹 서비스와 보안 연결을 설정할 수 없습니다.

가능한 해결 방법:

  1. 신뢰 저장소 구성:

    클라이언트의 신뢰 저장소에 필요한 인증서가 설치되어 있지 않을 수 있습니다. 이 문제를 해결하려면 시스템 속성을 설정하여 신뢰 저장소 경로와 비밀번호를 지정하세요.

    <code class="java">System.setProperty("javax.net.ssl.trustStore", "clientTrustStore.key");
    System.setProperty("javax.net.ssl.trustStorePassword", "password");</code>
  2. 서버 인증서 가져오기:

    클라이언트의 신뢰 저장소에 서버 인증서가 없으면 수동으로 가져옵니다. 다음 단계를 따르세요.

    • openssl과 같은 도구를 사용하여 서버 인증서를 PEM 형식(예: 인증서.crt)으로 내보냅니다.
    • PEM 파일을 바이너리 X로 변환합니다. .509 인증서 파일(예: Certificate.der):

      <code class="shell">openssl x509 -in certificate.pem -out certificate.der -outform DER</code>
    • keytool 유틸리티를 사용하여 DER 파일을 클라이언트의 신뢰 저장소로 가져옵니다.

      <code class="shell">keytool -import -alias server_cert -file certificate.der -keystore clientTrustStore.key</code>
  3. Java SSL 구성 업데이트:

    Java SSL 구성이 올바르게 설정되었는지 확인하세요. 예를 들어 ~/.java/jre/lib/security/jssecacerts를 수정하거나 다음 명령을 사용합니다.

    <code class="shell">keytool -import -alias server_cert -file certificate.der -keystore cacerts</code>
  4. SSL 인증서 확인 비활성화(권장하지 않음):

    임시 조치로 SSL 인증서 확인을 비활성화할 수 있지만 보안 문제로 인해 권장되지 않습니다.

    <code class="java">HttpsURLConnection.setDefaultHostnameVerifier((hostname, session) -> true);</code>
  5. 다른 인증서:

    웹 서비스에 특정 인증서가 필요한 경우 해당 인증서를 받아 클라이언트의 신뢰 저장소에 설치하세요.

위 내용은 ## HTTPS 웹 서비스에 액세스할 때 Java 클라이언트에서 \"PKIX 경로 작성 실패\" 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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