/
Portecle 로 Java Keystore 에 SSL/TLS 인증서 import 하기

Portecle 로 Java Keystore 에 SSL/TLS 인증서 import 하기

SSL/TLS 에서 자주 겪는 에러는 다음과 같이  ValidatorException PKIX path building failed 입니다.

이 에러는 주로 통신 상대방이 사용하는 인증서의 CA 인증서가 내가 사용하는 keystore 에 등록되지 않았을 경우 발생합니다.

[Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed:


Portecle 는 Java 로 개발된 GUI 기반의 Key store  관리 유틸리티로 keytools 명령어에 익숙하지 않아도 keystore 에 인증서를 넣고 뺄 수 있습니다.


설치하려면 portecle 프로젝트 사이트 에서 다운로드후 압축을 해제 하고 다음 명령어로 실행하면 됩니다.

java -jar portecle.jar

그러면 다음과 같은 프로그램이 표시됩니다.

CA 인증서 넣기

CA 인증서 추출

인증서를 넣으려면 먼저 상대의 인증서를 가져와야 하므로 메뉴에서 Examine SSL/TLS Connection: 을 선택합니다.


상대방의 host name 이나 IP 와 Port 번호를 넣고 OK 를 클릭합니다.

서버에서 CA 인증서를 같이 배포할 경우 상단의 우측 버튼(1)이 활성화되고 클릭할 경우 CA 인증서 정보를 볼 수 있습니다.

2번 Subject 는 인증서가 적용된 사이트 이름이고 3번 Issuer 는 발급자 (CA) 의 이름으로 Let's encrypt 를 사용하는 것을 알수 있습니다.


이제 상단의 다음 버튼을 클릭해서 CA 인증서 정보로 넘어간 후에 하단의 "PEM Encoding" 을 클릭합니다.

그러면 인증서 정보창이 뜨는데 Save  를 클릭해서 CA 인증서를 저장해 줍니다.


Key store 에 인증서 넣기

메뉴에서 File  → Open Keystore File  을 선택합니다.


사용하는 JDK 나 JRE 경로(예: /usr/java/jdk11/) 로 간 후에 lib/security 폴더의 cacerts 파일을 선택하고 열기를 클릭합니다.


암호를 묻는 창이 뜨는 설정한 keystore 의 암호를 입력합니다. 별도로 설정한 적이 없다면 기본 암호인 changeit 을 입력합니다.


등록한 CA 인증서의 목록이 표시되는데 Tools  → Import Trusted Certificate  메뉴를 선택합니다.


인증서 경로를 묻는 창에는 CA 인증서 추출  항목에서 저장한 인증서의 경로를 설정합니다.


key store 내 저장할 alias 를 묻는데 특별한 이유가 없다면 기본 값으로 설정하고 OK  를 누릅니다.


그러면 정상적으로 import 되었다는 메시지가 표시됩니다.

확인

오류가 나는 사이트에 java 로 연결해서 해결되었는지 확인해 보면 됩니다.

사용하는 JDK 나 JRE 가 업그레이드될 경우 매번 이 작업을 해줘야 합니다.(상대방이 사용하는 인증서 CA 가 JDK 에 포함되어 있으면 필요없습니다.)


같이 보기


Ref

Related content

Java 에서 ValidatorException 등 인증서 관련 에러 해결 - keystore에 SSL/TLS 인증서를 import 하기
Java 에서 ValidatorException 등 인증서 관련 에러 해결 - keystore에 SSL/TLS 인증서를 import 하기
More like this
Java PKIX path building failed: 에러 해결
Java PKIX path building failed: 에러 해결
More like this
Java 의 SSLHandshakeException 문제 해결
Java 의 SSLHandshakeException 문제 해결
More like this
Amazon Linux AMI 에서 letencrypt certbot 으로 SSL 인증서 발급 에러
Amazon Linux AMI 에서 letencrypt certbot 으로 SSL 인증서 발급 에러
More like this
Web Server 연동
Web Server 연동
More like this
DNS TXT Record 로 Let's Encrypt SSL 인증서 발급 받기
DNS TXT Record 로 Let's Encrypt SSL 인증서 발급 받기
More like this