반응형
오류메세지
pkix path building failed
unable to find valid certification path to requested target
상황 및 원인
상황 : JAVA에서 HTTPS로 다른 사이트에 요청해서 데이터를 받아 쓰고 있음 ( HttpURLConnection )
원인 : 대부분의 원인은 연결하려는 사이트에서 사용하는 SSL 인증서 정보가 요청을 하는 사이트 JVM의 신뢰하는 인증기관 인증서 목록에 등록되어 있지 않기 때문
그 외 원인
- 서버/클라이언트간 사용하려는 SSL/TLS 버전이 맞지 않음 (Ex: TLS 1.0만 지원하는 서버에 1.2로 hand chaking 요청 등...)
- SSL/TLS 통신에 사용하려는 cipher 사이트가 오래되거나 지원하지 않음 (Ex: JDK 1.8부터는 RC4를 사용하려고 하면 에러 발생)
해결
- 요청하는 URL 변경 ( http:// )
- 위 방법을 시도하지 않아 해결되는지 알 수 없음.
- 서버 JVM 신뢰 인증기관 목록에 연결 사이트 인증서 추가 ( Chrome 기준으로 작성 )
1. 연결 사이트의 인증서를 찾는다.
2. 인증 경로에서 ROOT 인증서 클릭 > 인증서 보기
3. 자세히 > 파일에 복사
4. 파일 형식을 선택하고 인증서 내보내기 마법사 진행하여 인증서 내려받음.
5. keytool을 이용해 인증서를 추가한다.
5-1 .${JAVA_HOME}/jre/security 경로에 있는 JVM 신뢰하는 인증서 목록 >> cacerts.cer 파일 준비
5-2. cmd 창에서 아래 keytool 명령어로 cacerts 파일에 4번에서 내려받은 인증서 추가
keytool -import -alias <추가할 인증서 별칭> -trustcacerts -file
<추가할 인증서> -keystore <JVM cacerts 파일>
디폴트 비밀번호 : changeit
6. 추가된 cacerts.cer 파일을 서버 ${JAVA_HOME}/jre/security 경로에 올린다 (덮어쓰기 등)
7. WAS 재시작
이미 인증서가 존재하거나, 추가해도 오류메세지가 표시되는경우 2번으로 돌아가 하위 인증서를 내려받아 진행함.
참고
* keystore 인증서 목록 확인 명령어
-v : 상세보기
keytool -list -v -keystore <인증서경로> '-alias <찾을 인증서 별칭>'
반응형
'개발 환경 및 오류' 카테고리의 다른 글
[젠킨스] 실패 - 컨텍스트 [{0}]이(가) server.xml에 정의되어 있어, 배치를 제거할 수 없습니다. (0) | 2023.03.13 |
---|---|
chrome-error://chromewebdata/ (0) | 2023.02.23 |
'@P***' 근처의 구문이 잘못되었습니다. (0) | 2021.09.10 |
[Javascript] ajax formData 사용 시 Illegal invocation (0) | 2021.05.07 |
Some resources were not reverted. svn: E155038: Cant revert '{0}' without reverting parent (0) | 2020.10.07 |