0부터 시작하는 Keycloak 공부 - Grafana Container에 Root CA 인증서 등록하기

Jaehong Lee·2023년 8월 4일
2
post-thumbnail

1. 상황

  • 우리는 OpenSSL을 통해 발급한 사설 인증서를 사용한다. 사설 인증서가 적용된 서버에 접근하려면, 사설 인증서 생성에 사용한 Root CA 인증서를 클라이언트에 등록해야 한다

  • 우리는 Keycloak과 Grafana를 연동하고 싶다. 허나, Grafana에서 인증을 위해 Keycloak에 접근하려면 TLS 인증을 거쳐야 하는데, 이를 위해서 Grafana Container에 Root CA 인증서를 등록해야 한다

  • 하지만 우리는 Grafana를 Helm으로 설치하는데, values.yaml에 별다른 설정이 없다… 어떻게 등록해야 할까?

    • 물론 TLS 설정을 할 수 있는 bitnami의 Helm Chart로 전환하는 방법도 있지만, 설치하고자 하는 오픈소스의 Helm Chart가 bitnami에 없는 경우도 있다 ( ex. Nexus ). 따라서 범용으로 사용할 수 있는 방법이 필요하다

2. Dockerfile 이용하기

  • Dockerfile을 이용하여 기존에 사용하던 Grafana Image에 layer를 추가하는 방법을 사용할 것이다. 해당 Image를 통해 배포한 Grafana Container에는 Root CA 인증서가 등록되어있다
FROM docker.io/grafana/grafana
USER root
COPY localCA.pem /usr/share/ca-certificates/
RUN /bin/bash -c 'cat /usr/share/ca-certificates/localCA.pem >> /etc/ssl/certs/ca-certificates.crt'
  • Dockerfile 내용은 위와 같다
  1. 사용 이미지는 Grafana
  2. RUN, CMD, ENTRYPOINT와 같은 명령을 실행하기 위한 사용자를 Root 로 지정
  3. 로컬 서버에 있는 Root CA 인증서를 Container의 지정된 경로에 복사
  4. 복사한 Root CA 내용을 /etc/ssl/certs/ca-certificates.crt에 붙여넣기하여 Root CA 등록
docker build --no-cache -t ca-grafana:v8.3.0 .
  • Dockerfile 내용을 기반으로 Image를 Build 한다 ( 기존 Image에 Layer를 추가하는 것이다 )

  • 다음 편에서 진행한 Keycloak-Grafana 연동의 결과이다. 둘 사이에 Https 통신이 잘 된 것을 확인할 수 있다

이와 같은 방식으로 다른 오픈소스 컨테이너에도 Root CA 인증서를 등록할 수 있다!

profile
멋진 엔지니어가 될 때까지

0개의 댓글