java 신뢰하는 인증서

짐니·2023년 11월 28일
0

java 신뢰하는 인증서 목록에 mobility42.io 인증서 추가
Https를 사용하는 웹사이트에 연결을 시도할 때 Java에서 신뢰하는 인증서 목록에 해당 웹사이트의 인증서가 존재하지 않으면 에러가 발생한다. 그렇기 때문에 Java에서 신뢰하는 인증서 목록에 해당 웹사이트의 인증서를 추가해주어야 한다.

배포시 마다 AWS ECR에 있는 이미지로 컨테이너 만들고 그 위에서 build stage를 실행시키기 때문에, 인증서를 java 폴더로 복사하는 코드가 추가된 도커 이미지를 새로 만들었다.

openjdk17_cert 이미지 생성

  1. Dockerfile 작성 (위치: gitlab>devops>common>base-docker>Repository)

openjdk17 Dockerfile에서 아래 코드만 추가하였다.

java 신뢰하는 인증서가 있는 폴더에 복사하는 코드이고, 해당 경로는 환경마다 약간씩 다르므로 확인하는 것이 좋다.
여기서 주의해야 할 것은 해당 인증서는 Dockerfile이 위치하는 폴더와 같은 경로에 있어야 한다.

  1. 해당 Dockerfile를 build하여 이미지를 만든다.
  1. ECR에 올리기 전 tag 설정 해준다.
  1. ECR에 openjdk17_cert용 repository 만든 후 이미지를 업로드 한다.

이제 gitlab-ci.yml에서 openjdk17_cert 이미지를 사용할 수 있게 되었다.

  1. 배포 시 해당 이미지로 컨테이너를 만들 때 인증서가 security 폴더로 복사될 것이고, gitlab-ci.yml 에서 depClone.jar파일을 실행하기 전에 인증서를 import 해주는 코드를 추가해줘야 한다.
  • export JAVA_HOME=/usr/local/openjdk-17
  • keytool -importcert -noprompt -file $JAVAHOME/lib/security/.mobility42.io.crt -alias m42cert -keystore $JAVA_HOME/lib/security/cacerts -storepass changeit

alias 지정해 주고, 비밀번호도 입력해야 한다. 기본 비밀번호가 changeit 이다. -noprompt 옵션을 추가해주어야 한다. 이렇게 하면 java 신뢰하는 인증서로 추가가 된다. 정상적으로 추가되었다면 파이프라인 로그에서 확인할 수 있다.

참고 링크
https://signpen.net/2511886
https://cherry-beer.tistory.com/12
https://advenoh.tistory.com/29

profile
데브업 종사자

0개의 댓글

관련 채용 정보