우리는 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 ). 따라서 범용으로 사용할 수 있는 방법이 필요하다
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 내용은 위와 같다
- 사용 이미지는 Grafana
- RUN, CMD, ENTRYPOINT와 같은 명령을 실행하기 위한 사용자를 Root 로 지정
- 로컬 서버에 있는 Root CA 인증서를 Container의 지정된 경로에 복사
- 복사한 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 통신이 잘 된 것을 확인할 수 있다