ssl인증서를 담은 http통신을 하기 위해 Keystore.load 를 호출 하는 과정에서
특정 ssl 인증서를 접근하는 경우에 저런 에러( data isn't an object id (tag = 48) )가 나왔는데요
p12 확장자 형식의 인증서인 경우 jdk 8 버전에서 인증서 열 때 오류가 있다고 합니다.
하지만 회사나 대규모의 프로젝트를 운영하는 도중에 자바 버전을 바꾸기에는
리스크가 너무 크기때문에 자바버전을 바꿀수 없어서 인증서를 바꾸는 방식을 채택하였습니다.
해결 방법은 다음과 같습니다.
1. jdk 버전을 p12 인증서 load가 가능한 버전으로 uprade
2. 1번을 할 상황이 안되는 경우 인증서 확장자를 변환. 방법은 아래와 같습니다
keytool -importkeystore -srckeystore (변경전 인증서).p12 -srcstoretype pkcs12 -destkeystore (변경할 인증서).jks -deststoretype jks
2번 방법 사용하실 경우 현재 pc의 java 버전도 프로젝트의 자바버전과 동일해서 변경되지 않을 가능성이 있습니다.
변경되지 않으신 경우 jdk 다운로드 후 환경변수 설정을 통해 자바 버전 바꾸시고 keytool 명령어를 사용하셔야 됩니다.
하단 링크를 통해 jdk 17또는 19버전 다운로드 받으신 후 재시도 해주세요
https://www.oracle.com/kr/java/technologies/downloads/#java19
또한 p12인증서로 개발진행하신 경우 KeyStore.getInstance("pkcs12")로 인증서저장소를 불러오셨을 텐데
jks인증서 형식으로 바꿨기 때문에 KeyStore.getInstance("JKS")로 바꾸셔야 됩니다.
'java > 오류' 카테고리의 다른 글
| java 이상한 깨진 문자(⦠â ® â¢) 해결방법 (0) | 2025.05.16 |
|---|
