Linux

SSL 인증 오류 - PKIX path building failed: unable to find valid certification path to requested target

I장군T 2024. 8. 16. 15:09
반응형

SSL로 접속해서 사용중에 인증서 오류가 발생했다.

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

 

원인을 찾아보니 

 - 사설 인증서인 경우

 - 신뢰할 수 있는 인증 기관이나, java에서 신뢰하지 않는 경우

 

로컬(postman)에서는 정상적으로 호출됨. java에서 신뢰하지 않는거 같다.

JAVA는 SSL인증서를 인증저장소(cacerts)에 있는 CA인증서로 신뢰성을 검증한다. 

 

cacerts에 인증서를 등록해서 해결.

1. SSL 인증서를 다운로드 한다. 

    - linux에서 openssl를 이용해 다운로드 하는 방법과 window에서 chrome 브라우저로 다운로드 받는 방법

    - chrome browser로 다운받음.

      1-1. SSL 사이트 접속 & 인증서 다운로드

Chrome 사용시
Edge 사용 시


      1-2. 인증서 변환(crt → cer)

       - 리눅스는 CER 파일로 변환해서 저장한다. 

       - 다운받은 인증서를 더블 클릭   자세히 클릭   파일에 복사 클릭   Base 64로 인코딩된 X_509(.CER) 선택  

       - 이름입력하고 저장

인증서 변환(crt → cer) 과정

   1-3. 변환된 인증서(cer)를 서버로 옮긴 후 keytool을 이용해서 저장소(cacerts)에 저장한다.

cacerts 파일이 있는 경로로 이동
keytool 명령어로 cacerts 저장소에 cer 저장

1-3. keytool 저장 시 패스워드는 changeit 이다.

1-4. 추가 할지 물어보면 y 입력

1-5. java 재기동 후 확인

 

반응형