sitelink1  
sitelink2  
sitelink3  
sitelink4  
extra_vars5  
extra_vars6  

성공적인 SSL 적용후에 몇가지 체크 사항을 위해 기록으로 남긴다.

 

몇몇 레퍼런스들을 살펴보면서 내가 구축한 환경과의 차이점은

내가 keycloak 을 설치한 환경에서는 이미 80과 443 포트로 운영중인 웹서버가 있었다.

다만 인증서버를 별도의 장비로 분리해가면서 운영할 필요는 없다고 생각해서 같은 환경에서 구축하고 있었는데

대부분 예제들은 리버스 프록시를 위해 nginx 를 사용하는데 인증서를 nginx 에 적용하기 때문에 정작 keycloak 만 운영하고픈 나의 환경에서는 적용할 수가 없었다.

그런데 예제 하나가 정확하게 docker-compose 로 keycloak 에 인증서를 적용하여 실행하는 예제를 보여주었다. -> Deploy keycloak with ssl

다만 yml 내용에서 version 차이로 내용이 조금 달랐는데 살짝 수정해서 큰 문제없이 성공했다.

다음은 내가 성공한 docker-compose.yml 의 내용이다.

 

1. 환경정보

  - windows 11 pro

  - docker desktop 4.26.1

  - docker compose version : 3.8

 

2. docker-compose.yml

version: '3.8'

services:

  postgres:

    image: bitnami/postgresql:14.7.0

    volumes:

      - postgres_data:/var/lib/postgres/data

    environment:

      POSTGRES_USER: keycloak

      POSTGRES_PASSWORD: password

      POSTGRES_DB: keycloak

    ports:

      - 5433:5432

  keycloak:

    image: bitnami/keycloak:21.0.2

    volumes:

      - ./certs/fullchain.pem:/etc/x509/https/tls.crt

      - ./certs/privkey.pem:/etc/x509/https/tls.key

    environment:

      DB_VENDOR: POSTGRES

      DB_ADDR: postgres

      DB_DATABASE: keycloak

      DB_USER: keycloak

      DB_PASSWORD: password

      KEYCLOAK_ADMIN: admin

      KEYCLOAK_ADMIN_PASSWORD: password

      KC_HTTPS_CERTIFICATE_FILE: /etc/x509/https/tls.crt

      KC_HTTPS_CERTIFICATE_KEY_FILE: /etc/x509/https/tls.key

    ports:

      - 8282:8080

      - 8443:8443

    depends_on:

      - postgres

volumes:

  postgres_data:

    driver: local

    driver_opts:

      type: none

      device: ./postgres_data

      o: bind

 

대부분은 jboss/keycloak 을 많이 사용하던데 내가 bitnami 를 좋아해서 걍 bitnami 버전으로 선택했다.

그리고 db나 keycloak 의 admin password는 테스트니까 다른 예제들을 가져온거라 초기값 그대로인데 이젠 바꿔서 적용했다.

보면 인증서 파일의 확장자를 변경해서 적용했는데, 큰 문제없이 잘 적용되더라.

letsencrypt 에서는 인증서 파일들이 모두 pem 확장자인데 keycloak 에 적용할땐 crt 와 key 파일로 확장자를 변환해줘야 하나보다.

큰 의미는 없는거 같아서 걍 시키는대로 yml 내용을 작성해서 적용했고 이상없이 동작하고 있다.

 

 

번호 제목 sitelink1 글쓴이 날짜 조회 수
공지 [계속 추가중] SBOM 용어 정의   황제낙엽 2025.04.10 52
공지 [계속 추가중] Keycloak 용어 및 설정 옵션 정의   황제낙엽 2024.02.02 631
19 Client ID, Client Secret (Credential) 에 대하여   황제낙엽 2024.03.11 122
18 OAuth 2.0 의 등장, 구성 요소, 인증 과정 file https://blog.naver.com/dsz08082/223024950520  황제낙엽 2024.03.11 140
17 Customizing the Login Page for Keycloak (Keycloak 로그인 페이지 사용자 정의) file https://www.baeldung.com/keycloak-custom-login-page  황제낙엽 2024.02.04 432
16 Access & Refresh token file https://letsmakemyselfprogrammer.tistory...sh%20token  황제낙엽 2024.02.03 108
15 OAuth 2.0 Client Types 별 Flow (인증 프로세스) file   황제낙엽 2024.02.02 115
14 [스프링 시큐리티 OAuth2] KeyCloak 실습 (Postman, Servlet) file   황제낙엽 2024.02.02 266
» docker keycloak 에 ssl 적용 결과 후기   황제낙엽 2024.02.01 550
12 Keycloak 설치 관련 레퍼런스들 (with docker) https://www.keycloak.org/downloads  황제낙엽 2024.01.22 129
11 docker 를 이용하여 keycloak 실행 환경을 구축하는 포스팅 모음 (docker compose 포함)   황제낙엽 2024.01.22 408
10 KeyCloak 을 활용하여 사용자 인증을 처리하는 과정에 대한 포스팅 모음   황제낙엽 2024.01.20 101
9 [POST/2020.11.10] KeyCloak의 REST API 이용해서 JWT 발급과 검증 file https://oingdaddy.tistory.com/198  황제낙엽 2024.01.20 281
8 SAML roles 에 대하여   황제낙엽 2024.01.20 101
7 무료 Authorization Server 솔루션   황제낙엽 2024.01.18 154
6 Keycloak 에 대하여   황제낙엽 2024.01.18 133
5 OAuth2 구글(Google), Github, 카카오(Kakao), 네이버(Naver) 로그인 API 목록 https://choiseokwon.tistory.com/389  황제낙엽 2023.12.17 135
4 Spring Authorization Server 관련 포스트 목록과 인프런 강의   황제낙엽 2023.12.07 111
3 [POST/2023.05.22] OAuth 2.1 Authorization Server (Spring Security) 구축 후기 file https://tech.kakaopay.com/post/spring-oa...-practice/  황제낙엽 2023.12.03 157
2 OAuth 와 JWT 내용 정리 (개념 정의 및 적용 전략) file https://seungwoolog.tistory.com/95  황제낙엽 2023.12.03 171
1 [Copilot, Bard] oauth claim 의 의미   황제낙엽 2023.12.02 113