SSLHandshakeException: PKIX path building failed
위와 같은 에러메시지가 뜬다는 건 SSL 보안 등록이 되어 있지 않다는 뜻이다.
브라우저가 아니라 자바 서버에서 https 요청을 보내 주려면 인증서를 추가해야 한다.
자바에서는 아래 경로에서 인증서를 저장해 사용하고, keytool 이라는 명령어로 관리할 수 있다.
- 인증서 저장소 경로 : ${JAVA_HOME}/lib/security/cacerts
- 현재 등록된 인증서 조회하기 : keytool -list -v -keystore ${JAVA_HOME}/lib/security/cacerts
1. 인증서 파일을 keystore에 import한다.
keytool -import -keystore ${인증서 저장소 경로} -file ${인증서파일 경로} -alias ${alias이름}
예시) keytool -import -keystore /../jdk-17/lib/security/cacerts -file /../../xxx.pem -alias dw_cert
Certificate was added to keystore 라는 메시지가 뜨면 성공
필요시 사용
keytool -exportcert -keystore ${인증서 저장소 경로} -storepass ${인증서 저장소 비밀번호} -file ${내보낼 파일명.cert} -alias ${alias이름}
예시) keytool -exportcert -keystore /../jdk-17/lib/security/cacerts -storepass ${password} -file key.cert -alias dw_cert
Certificate stored in file <key.cert> 라는 메시지가 뜨면 성공
2. 내보내진 cert파일을 cacerts에 등록한다.
keytool -importcert -keystore ${인증서 저장소 경로} -storepass ${인증서 저장소 비밀번호} -file ${export한 파일} -alias ${export한 파일의 alias이름}
Certificate was added to keystore 라는 메시지가 뜨면 성공
참고 글
https://blog.naver.com/skinfosec2000/222135874222
웹사이트 보안을 위한 방법, SSL이란? (feat. SSL과 HTTPS의 차이)
안녕하세요! 알기 쉽게 풀어쓴 보안 '알풀보'입니다. '알풀보'는 어려운 보안 용어와 ...
blog.naver.com
# /usr/java1.3/bin/keytool -storepasswd \
-keystore /usr/java1.3/jre/lib/security/cacerts
Enter keystore password: changeit
New keystore password: new-password
Re-enter new keystore password: new-password
https://techlog.io/Server/HTTPS/nginx%EC%97%90-https-ssl-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0/
Nginx에 HTTPS SSL 적용하기
앞선 포스트들에서 기본적인 HTTPS개념들과 동작 방식, 그리고 로컬 API서버에 적용하는 방법을 다루어 보았습니다. 이번에는 Nginx를 기반으로 작동하는 웹 서버에 HTTPS를 적용하는 방법에 대해 알
techlog.io
https://www.lesstif.com/software-architect/pem-cer-der-crt-csr-113345004.html
PEM 과 CER/DER/CRT/CSR 형식 파일이란?
www.lesstif.com
'이럴땐 이렇게' 카테고리의 다른 글