SunCertPathBuilderException: Java에서 요청된 대상 오류에 대한 유효한 인증 경로를 찾을 수 없음

Muhammad Zeeshan 2023년10월12일
  1. Java에서 sun.security.provider.certpath.SunCertPathBuilderException이란 무엇입니까?
  2. sun.security.provider.certpath.SunCertPathBuilderException: 요청된 대상에 대한 유효한 인증 경로를 찾을 수 없음의 원인
  3. sun.security.provider.certpath.SunCertPathBuilderException: 요청된 대상에 대한 유효한 인증 경로를 찾을 수 없음의 솔루션
SunCertPathBuilderException: Java에서 요청된 대상 오류에 대한 유효한 인증 경로를 찾을 수 없음

오늘 게시물에서는 요청한 대상에 대한 유효한 인증 경로를 찾을 수 없음의 잠재적인 이유와 Java에서의 솔루션에 대해 논의합니다.

그러나 계속하기 전에 SSL 인증서에 대한 명확한 이해가 필요하므로 SSL 암호화 및 인증서를 명확하게 이해해야 합니다.

SSL 암호화 및 인증서: SSL 인증서가 없으면 HTTPS 연결이 제대로 작동하지 않습니다. 일련의 공개 및 개인 키를 사용하여 서비스 또는 웹 사이트의 주장된 ID를 입증합니다.

개인 키는 도메인에서 제공하는 모든 것을 암호화하거나 서명하고 클라이언트 앱은 공개 키를 활용하여 식별을 검증합니다.

Java에서 sun.security.provider.certpath.SunCertPathBuilderException이란 무엇입니까?

sun.security.provider.certpath.SunCertPathBuilderException은 Java 프로그램이 연결을 시도하는 서버의 SSL 인증서를 확인하는 Java 예외 처리용 클래스입니다. 이 클래스는 인증서를 만든 공급자의 이름을 따서 명명되었습니다.

다음은 이 문제가 발생할 때 개발자에게 표시되는 오류 메시지입니다.

Caused by : sun.security.provider.certpath.SunCertPathBuilderException
    : unable to find valid certification path to requested target

SSL을 사용하여 암호화된 서비스를 방문하는 것과 관련된 모든 작업 중에 발생할 수 있습니다.

SSL 보호 API 및 웹사이트는 액세스하기 전에 Java 프레임워크에서 신뢰성을 확인합니다. 이것은 서명된 루트 인증 기관이 거기에 있는지 확인하기 위해 내부 신뢰할 수 있는 목록을 검사하여 수행됩니다.

서비스에 대한 참조를 찾을 수 없는 경우 Java에서 이 오류가 발생합니다. 자체 서명된 인증서를 사용하여 다른 사람의 디지털 서명으로 서명된 서비스에 액세스하면 항상 실패합니다.

sun.security.provider.certpath.SunCertPathBuilderException: 요청된 대상에 대한 유효한 인증 경로를 찾을 수 없음의 원인

Java가 SSL을 통해 다른 프로그램에 연결할 수 있는 유일한 방법은 HTTPS 등을 신뢰할 수 있는 경우입니다. 일반적으로 신뢰 인증서를 저장하는 Java 세계에는 $JAVA HOME/lib/security/cacerts 신뢰 저장소가 있습니다.

이 예외는 자체 서명된 인증서 또는 Java 신뢰 저장소에 없는 인증서 체인에 의해 트리거됩니다. Java는 인증서를 신뢰하지 않기 때문에 애플리케이션 연결을 거부합니다.

sun.security.provider.certpath.SunCertPathBuilderException: 요청된 대상에 대한 유효한 인증 경로를 찾을 수 없음의 솔루션

  1. 먼저 문제의 원인이 인증서인지 네트워크인지 확인합니다. 이를 확인하려면 Google Chrome 또는 선호하는 브라우저에서 URL을 열고 작동하는지 확인하십시오.

    이 경우 애플리케이션 클라이언트의 유효하지 않은 인증서 설정이 예외의 원인이어야 합니다. 브라우저에서 액세스할 수 없는 경우 방화벽 또는 네트워크 설정 문제가 있을 수 있습니다.

  2. 인증서 설정에 문제가 있는지 확인한 후 서버의 SSL 인증서를 가져옵니다. 이것은 가장 단순한 상황에서 루트 인증서일 수 있지만 대부분의 경우 인증서 체인과 중간 인증 기관이 필요합니다.

    아래 단계에 따라 SSL 인증서 유효성을 확인할 수 있습니다.

  • 브라우저를 열고 왼쪽 상단 모서리에 있는 자물쇠를 클릭합니다.

    URL의 Chrome 잠금

  • 그런 다음 연결이 안전합니다를 클릭합니다.

    연결이 안전함

  • 마지막으로 유효한 경우 사이트의 상태를 알 수 있습니다.

    인증서가 유효함

  1. 인증서 세부 정보를 내보내려면 다음 단계를 따르십시오.
  • URL 표시줄 옆에 있는 자물쇠 기호를 선택한 다음 연결이 안전함 > 인증서가 유효함을 클릭합니다.

    인증서가 유효함

    인증서

  • 세부 정보 섹션을 클릭하고 파일에 복사 버튼을 클릭하여 인증서를 내보냅니다.

    클릭 세부정보

    파일에 복사

    내보내기 마법사

  • DER로 인코딩된 바이너리를 내보냅니다.

    내보내기

  • 저장할 디렉토리를 선택하고 파일 이름을 지정하십시오.

    찾아보기

  • 마침을 클릭하면 내보내기에 성공했습니다라는 메시지가 표시됩니다.

    내보내기에 성공했습니다

  1. 새 인증서로 신뢰 저장소 항목을 시작하십시오. 키 도구 유틸리티를 사용하여 이를 수행할 수 있습니다.

    다음 명령을 실행하여 새 트러스트 저장소를 만듭니다.

    keytool - import - file C :\cascerts\firstCA.cert - alias firstCA - Keystore myTrustStore
    
  2. 프로세스를 완료하려면 프로그램을 다시 시작하십시오.

Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

관련 문장 - Java SSL

관련 문장 - Java Error