Spring Initializr 를 사용하여 Maven 빌드시 PKIX path building failed이 발생하면 아래와 같이 해결 할 수 있다.
원인은 연결하려는 Remote site의 인증서가 신뢰하는 인증기관 인증서 목록(keystore)에 없는 경우 발생 할 수있다.
1. cmd창에서 curl을 사용하여 installCert.java를 다운받는다.
인터넷에 해당파일 찾아 다운로드 할 수도 있다.
C:\Users\user1>curl -O https://gist.githubusercontent.com/lesstif/cd26f57b7cfd2cd55241b20e05b5cd93/raw/InstallCert.java
해당폴더에 installCert.java 을 확인 할 수 있습니다.
2. installCert.java 파일 compile 합니다.
C:\Users\9000885>javac InstallCert.java
3. InstallCert 를 구동하는데 호스트명에는 에러가 나는 도메인명을 넣으면 됩니다.
C:\Users\9000885>java -cp ./ InstallCert repo.spring.io
Server sent 1 certificate(s):
1 Subject CN=repo.spring.io, OU=Pivotal App Platform R&D, O="Pivotal Software, Inc.", L=Palo Alto, ST=California, C=US
Issuer C=KR, ST=Korea, L=Seoul, OU=VeriSign, O=VeriSign, CN=VeriSign
sha1 49 15 b1 a3 5c 82 10 29 e8 de 76 29 cf f0 fd 64 0b 94 ab f9
md5 ea e1 61 c2 74 02 fd 00 14 2d 03 73 c8 2d 95 b8
Enter certificate to add to trusted keystore or 'q' to quit: [1]
1을 눌러서 인증서를 저장합니다.
아래 메시지가 나오면 인증서가 정상적으로 저장되고 jssecacerts을 생성하게 됩니다.
Added certificate to keystore 'jssecacerts' using alias 'repo.spring.io-1'
keystore 등록된 인증서 조회
keytool -list -keystore jssecacerts
4. keystore에서 인증서를 추출합니다.
keytool -exportcert -keystore jssecacerts -alias repo.spring.io-1 -file springoutput2.cert
키 저장소 비밀번호 입력: changeit
인증서가 <repo1_maven_org.cert> 파일에 저장되었습니다.
인증서 비밀번호 : changeit
인증서 파일명 지정 : springoutput2.cert (*원하는 인증서 파일명 지정하시면 됩니다.)
alias는 repo.spring.io-1 와 동일하게 입력합니다.
아래 메시지가 나오면 정상적으로 인증서가 생성 되었습니다.
인증서가 <springoutput2.cert> 파일에 저장되었습니다.
5. 현재 사용하는 JDK의 Keystore에 인증서를 Import합니다.
C:\Users\9000885>keytool -importcert -keystore "C:\Program Files\Java\jdk1.8.0_25\jre\lib\security\cacerts" -storepass changeit -file springoutput2.cert -alias repo.spring.io-1
이 인증서를 신뢰합니까? [아니오]: 예
인증서가 키 저장소에 추가되었습니다.
인증서가 정상적으로 추가 되었고, Maven Build를 실행하면 Spring repository를 사용 할 수 있습니다.
'IT게시판' 카테고리의 다른 글
Web Crawler에 대한 대응방법(Struts) (0) | 2022.12.27 |
---|---|
Jeus EJB Hot deploy (0) | 2022.11.29 |
java 소켓 연결 Timeout 설정 (0) | 2022.11.29 |
java.util.ConcurrentModificationException 해결방법 (0) | 2022.11.22 |
성능 테스트 (0) | 2022.11.22 |