■ Intro
일반적인 네트워크에서 springboot 프로젝트를 세팅할때는
intellij가 필요한 gradle을 자동으로 설치해서 문제가 없었다.
그러나 사내망에서는 gradle 설치 100% 시점에서 차단이 되는 것을 확인할 수 있다.
gradle 설치파일을 어떻게 가져와서 잘 잡아도 아래 두 문제가 발생 가능하다.
- build.gradle에서 distributionUrl에 접근하지 못하는 문제가 있어서 조금 변경해줘야 함
- root 인증서를 jdk keystore에 등록해주어야 함
그래서 해결 방법을 기록해둔다.
■ 요약
- 필요한 버전의 gradle 수동설치를 해야 한다. 초기세팅할 시점에 Settings에서 gradle을 확인했을 때 Use Gradle From이 gradle-wrapper.properties file 이라면 해당 gradle 버전을 설치하기 시작한다. 나같은 경우는 100% 시점에서 다운로드가 차단되었고, 오류가 발생했다.
Server returned HTTP response code: 403 for URL: https://objects.githubusercontent.com/github-production-release-asset-2e65be/~~~~~~~~~
해결 방법은 그 설치 실패한 gradle 버전에 맞춰(로그에 뜸) 설치파일을 손수 가져와 세팅해주는 것이다.
설치 후 Use Gradle from을 그 gradle 설치 location으로 맞춰주면 된다.
- plugin [id: 'org.springframework.boot', version: '3.3.2'] was not found in any of the following sources:
불러올 수 없는 문제.. 해결을 위해 build.gradle의 수정이 필요하다.
- 위와 같이 gradle을 잘 잡아주어도 Unable to find valid certification path to requested target 문제를 만날 수 있다.
로컬 jdk keystore (cacerts인데 아래서 자세히..)에 회사의 root 인증서 등록해주면 된다.
■ 설치파일 옮기기
발생 가능한 문제점
개인PC에서 업무PC로 git, gradle 등 파일을 전송해야 한다. 다양한 방법이 있을 텐데, 우리 회사는 이러하다.
- 일단 gmail로 보내면 대용량 (25MB였나 20MB 이상) 이슈로 google drive에 업로드되는 형태로 전송되는데, 어차피 사내망에서 gdrive 접근이 되지 않아서 다운로드받을 수 없다.
- 업무PC는 USB 사용 불가능하다.
그래서 대용량 첨부방법 불가능한 문제를 피하기 위해 분할압축하여 대충.. 19MB씩 쪼개서 보내고자 했다.
메일로 보내려 했는데 다음과 같은 문제가 발생한다.
- gmail에 첨부할 경우 '보안상의 이유로 차단되었습니다.' 문제 발생!
- 다른 메일(naver)로 사내 메일로 전송하려 했는데.. 수신이 안됨!
그래서 메일을 포기하고 내가 찾은 방법은...
내 티스토리에 분할압축된 설치파일들 첨부해서 다운받기..! ㅋㅅ ㅋ 이건 되더라구!?
암튼 git이랑 gradle을 그렇게 업무PC로 옮겼다.
아무튼 방법이 뭐든 설치파일을 옮기자.
업무용 PC로 git, gradle 설치파일 옮기고 설치하기는 완료되었다고 가정하고 설명 시작! 👏🏻
1. gradle 로컬 경로 잡아주기
Settings > Build, Execution, Deployment > Gradle에서 Distribution을 Local installation으로 변경한 후
업무용 PC로 옮겨온 gradle 경로를 지정해준다.
2. build.gradle 확인사항
일단 그냥 빌드를 하면 이런 에러가 뜰 수 있다.
plugin [id: 'org.springframework.boot', version: '3.3.2'] was not found in any of the following sources:
이 문제 해결법은 다양한데..
● build.gradle에서 기존의 plugins 부분을 없애버리고 아래 내용으로 버전 맞춰서 덮어쓴다. (나머지는 그대로 둠) 나는 이건 하지 않을것이다. 개인 플젝이 아니라서다.
buildscript {
repositories {
mavenLocal()
maven { url 'https://maven.aliyun.com/repository/google/' }
maven { url 'https://maven.aliyun.com/repository/public/' }
maven { url 'https://maven.aliyun.com/repository/spring/' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' }
maven { url 'https://maven.aliyun.com/repository/spring-plugin/' }
maven {
url "https://plugins.gradle.org/m2/"
}
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:3.3.2") // 버전 변경
classpath "io.spring.gradle:dependency-management-plugin:1.1.6" // 버전 변경
}
}
plugins {
id 'java'
}
apply plugin: "org.springframework.boot"
apply plugin: "io.spring.dependency-management"
● 프로젝트 관련 저장소 (nexus 등) 계정 정보가 잘 연동되어있는지 확인하자. build.gradle과 setting.gradle을 확인해보면 credentials 부분이 있을 수도 있다.
ㄴ저는 이 문제였슴!!
● Intellij 재부팅 해보니까 해결되는 것도 경험했다.
3. root 인증서를 jdk keystore에 등록
일단 또 빌드해보면 아래 에러가 뜰 수 있다.
Unable to find valid certification path to requested target
해결방법이 있었다.
root 인증서를 프로젝트의 로컬 jdk의 keystore에 등록해주는 것이다.
[1] root 인증서 받는법
아무 브라우저에서 F12 누르고 Security 탭에 들어간다. 저기 인증서 보기 누르면 창이 뜬다. 세부정보 들어가서 root 인증서를 내보내기 할 수 있다.
[2] jdk keystore에 등록하는법
프로젝트의 jdk 위치를 확인해보고 거기서 lib > security 디렉토리에 들어가보면 cacerts라는 파일이 하나 있을텐데 그게 keystore다. 아래 명령어로 keystore에 root 인증서 등록하는 과정을 거친다.
sudo keytool -importcert -file {인증서파일경로} -keystore cacerts -storepass changeit -noprompt
참고: 옵션 중 -storepass에 changeit은 기본 password인가?
changeit이라고 적혀있길래 다른거 입력해보니까 안되더라!
아시는분 댓글점!
실수로 인증서를 다른거 등록하거나 암튼 잘못 등록했으면, 방금 등록한 key를 삭제하고 다시 올바른 인증서를 등록하면 된다. 삭제 방법은.. keystore 삭제.. 라고 검색하면 나올 것임!
삭제 명령 치면 password 입력하라고 하는데 키스토어 비번인 changeit 입력해주면 된다.
■ 빌드 성공!
폐쇄망에서 뭐 공부해보려고 간단 springboot 실습해보려 했는데 위와 같은 이유들로 못했었다.
근데 이제부터 가능해졌다 >o < 얏호~~!
.
.
Ref.
'미분류글' 카테고리의 다른 글
[Redis] StreamListener(onMessage)와 Consumer 객체간 관계 (0) | 2024.09.19 |
---|---|
Redis Stream의 구조적 특징(Message Queue) (2) | 2024.08.26 |
[Web][Docker] 동일 ip, 서로 다른 도메인 80포트에 대한 포트포워딩 설정 (1) | 2024.07.16 |
java.rmi.server.ExportException: Listen failed on port: 0; (0) | 2024.06.14 |
하나의 서버 인스턴스에 운영 및 테스트서버 두기 (0) | 2024.06.07 |