PKIX path building failed 에러

문의 사항에 따라 필요한 정보를 먼저 입력하시면 더 빠르게 대응해 드릴 수 있습니다.

자바버전 : jdk1.8.0_202
tomcat 버전 : tomcat 7

  • 개발 과정에서 문제가 있을 경우

    • 앱 아이디(app ID): 747437
    • 호스팅 사:
    • 서비스 URL : https://local-www.hazzys.com/
    • 오류 내용 : I/O error on POST request for “https://kauth.kakao.com/oauth/token”: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is 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
  • 퍼머링크 생성이 필요할 경우 (자세한 신청 방법은 가이드 참고)

    • 카카오싱크 퍼머링크의 서비스 랜딩URL:
    • 디벨로퍼스 앱과 연결된 카카오톡 채널의 검색용 아이디:

개발 환경에서 테스트 중입니다.

안녕하세요

JRE 버전 업그레이드 또는 직접 루트인증서갱신 및 certificates업데이트 해주시면 호출가능하십니다.

아래 문서 참고 부탁드립니다.
https://devtalk.kakao.com/t/open-api-ssl-urgent-notice-replacing-ssl-certificates-in-kakao-open-api-platform-revised-need-to-recheck/117933

혹시 인증서 적용이 제대로 되었는지 확인하는 방법이 있을까요 ?
위에 방법대로 한것 같은데 똑같은 오류가 발생합니다

자바가 설치된 위치의 security 폴더에서 다음 명령어를 실행해 보시겠어요?

경로 예: $JAVA_HOME/lib/security:>
명령어: keytool -keystore cacerts -list -v | grep DigiCert

DigiCert Global Root G2가 보이는지 확인 부탁드려요~

image
이렇게 나옵니다.

혹시 인증서 말고 다른 것때문에 저 오류가 나올수도 있나요 ?

어플리케이션이 사용하는 jre 경로에서 확인하신 것일까요?

넵 맞습니다

우선, 아래 주소를 호출하는 심플한 java파일을 하나 만들어 java 명령어로 테스트 부탁드립니다.

https://test-kapi.kakao.com/test-ca-certificates

위 주소를 GET으로 요청 시, OK 응답이 오시면, 설치된 java에는 문제가 없으십니다.

테스트하니 pkix 에러가 발생합니다ㅠ

사용하시는 OS에 따라 아래 내용 체크 부탁드립니다.

https://devtalk.kakao.com/t/open-api-ssl-urgent-notice-replacing-ssl-certificates-in-kakao-open-api-platform-revised-need-to-recheck/117933/4?u=woody.ho

java 인증서 추가 방법 이걸 따라 했더니 https://test-kapi.kakao.com/test-ca-certificates 테스트는 OK가 나옵니다
하지만 여전히 pkix 에러가 발생합니다

테스트에서 OK가 나오신다면, 테스트에 사용하신 JAVA에 루트인증서가 잘 설치된것 같습니다.

떄문에 서비스에서 사용하시는 java와 테스트에 사용하신 java가 다른 것 같습니다.

서비스가 사용중인 java 경로 확인 부탁드립니다.

경로는 맞는거 같습니다. 혹시 저에러가 다른이유로 뜨는경우는 없는겁니까 ?

해당 오류는 서비스측 환경 문제 입니다.
대부분 원인은 카카오에서 사용하는 SSL인증서 정보가 서비스측 JVM keystore에 없어서 발생하는데요

제공되는 서비스안에 간단한 테스트 url을 만들어 내부에서 테스트 주소를 호출 해 보시는건 어떨까요?
만약 실패하신다면 서비스에서 사용하는 JVM과 테스트에 사용하신 JVM이 다르다는것을 의미 합니다.

제공되는 서비스에서 테스트를 하니 위에 오류가 발생합니다.ㅠ
서비스측에 JVM에 넣은것 같은데 …안됩니다ㅠ

was 어떤 것을 사용하시나요?

tomcat 7 사용중입니다

spring boot 프로젝트인가요?

서버와 프로젝트 구성을 알려주시겠어요?
(예, centos, spring boot)

프로젝트는 spring 이고 OS 는 windows 이고 tomcat 에 nginx 사용중입니다.

톰켓의 JVM 설정이 어떻게 되어 있는지 확인 하셔야 할 것 같습니다.

윈도우 서비스로 구동중이시라면 catalina.bat에 java home 설정이 어떤지 확인하실 수 있으며, 설정이 변경되었다면 서비스를 내렸다가 올리셔야 할 것 같아요.