본문 바로가기
IT, Software/Web

SpringBoot 웹서비스 개발 - 3. VS Code WAR/JAR빌드하기, 사내망 SSL오류 해결방법

by 기타마을이장 2022. 9. 1.

 

JDK와 VS Code를 설치하고, Spring Boot개발을 위한 VS Code안의 개발환경까지 모두 세팅했다.

이제 본격적으로 샘플 코드를 한번 돌려보려고 한다.

 

SpringBoot 웹서비스 개발 - 2. VS Code에 SpringBoot개발환경 세팅하기

SpringBoot 웹서비스 개발 - 1. 개발환경 세팅하기 OpenJDK, VS Code 등 이번에 회사에서 프로토타입 형태로 웹서비스를 개발해보기로 했다. 하지만 난 웹서비스는 머리 털나고 한 번도 개발을 안 해봤기

fidelislee.tistory.com

 

Maven을 활용해서 WAR/JAR  빌드하기

회사에서 템플릿을 제공해준 상태라서 Maven 빌드를 위한 pom.xml 파일 등은 이미 작성이 되어 있었다.

Extension 설치까지 다 마무리했기 때문에 바로 빌드를 해본다.

Maven으로 빌드를 시도해본다.

 

빌드 에러(PKIX path building failed, 인증서 오류)

그런데 빌드를 하면 먼가 주르륵 빌드가 되길 기대했지만 에러 메시지만 덩그러니 뜬다ㅠ

Exception in thread "main" javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

이유를 좀 찾아보니 이미 먼저 경험하고 해결해본 능력자분들의 글을 보고 원인이 살짝 이해가 됐다ㅎㅎ

(참조 : https://jinhokwon.github.io/devops/devops-java/ )

회사 프로토타입이기 때문에 사내망 환경에서 개발을 해야 하는데 보안상 사내망 네트워크는 NAT방식으로 구성되어 있다.

하지만 OpenJDK에 기본적으로 포함된 인증서 파일은 일반 공인망에서 사용하는 용도로 만들어진 인증서이기 때문에

 

사내망에서 Maven 빌드에 필요한 파일들을 연동하기 위해 https로 연동하려 할 때 인증 오류가 발생된다고 한다.

 

Maven 빌드를 위한 SSL 오류 해결방법

가장 좋은 그리고 간단 방법은 사내 담당자한테 사내용 cacerts 파일을 받아서 진행하는 방법이다.

하지만, 난 이렇게 했는데도 안됐다ㅠㅠ

 

그래서 찾은 방법은 우선 이런 경우 브라우저에서 Maven Repository로 접속을 해본다

 - Maven Central Repository : https://repo.maven.apache.org/maven2/

그리고 접속이 된다면 해결방법은 간단하다.

 

  1. 주소창 맨 앞에 '자물쇠 부분을 클릭 > 이 사이트는 보안 연결(HTTPS)이 사용되었습니다' 선택
  2. 하단의 '인증서가 유효함' 클릭
  3. 자세히 > 파일에 복사 클릭 > 인증서 내보하기로 *.cer 파일 만들기 

인증서를 내보내기 위해 복사를 시도한다.

 

이렇게 인증서를 저장하고 나면 이제 명령 프롬프트(CMD)를 실행시켜서 저장한 인증서를 cacerts 파일로 변환시켜준다.

keytool -import -file sample.cer -keystore "E:\Java\OpenJdk1.8\jre\lib\security\cacerts"

 

인증서를 새롭게 만들었으니 VS Code를 재실행시켜준 다음 한번 더 Maven Install을 시도해본다.

그리고 드디어!! 빌드에 성공했다~~~~ㅎㅎㅎㅎ

SpringBoot은 특별한 설정을 안하면 jar로 빌드가 된다고 한다.

그렇게 고대하던(?) target 폴더 아래에 jar파일이 만들어진걸 확인했다ㅎㅎ

 

빌드된 파일을 Tomcat으로 띄우기

이제 빌드까지 됐으니 로컬 환경에서 빌드한 파일을 띄워본다.

VS Code에서 빌드된 파일을 띄우는 건 TERMINAL에서 명령어 입력으로 가능하다.

혹은... 명령 프롬프트(CMD)에서 동일하게 명령어를 입력해도 된다ㅎㅎ

C:\Users\FidelisLee> java -jar ./sample.jar

 

드디어 성공!!!ㅎㅎㅎ

브라우저로 localhost:8080으로 접속을 해보니... 에러 페이지이긴 하지만 먼가 페이지가 뜬다ㅎㅎㅎ

다음으론 실제 API테스트를 한번 해봐야겠다.

 

반응형

댓글