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 글쓴이 날짜 조회 수
공지 [계속 추가중] Keycloak 용어 및 설정 옵션 정의   황제낙엽 2024.02.02 5
74 Client ID, Client Secret (Credential) 에 대하여   황제낙엽 2024.03.11 2
73 OAuth 2.0 의 등장, 구성 요소, 인증 과정 file https://blog.naver.com/dsz08082/223024950520  황제낙엽 2024.03.11 3
72 Customizing the Login Page for Keycloak (Keycloak 로그인 페이지 사용자 정의) file https://www.baeldung.com/keycloak-custom-login-page  황제낙엽 2024.02.04 30
71 Access & Refresh token file https://letsmakemyselfprogrammer.tistory...sh%20token  황제낙엽 2024.02.03 2
70 OAuth 2.0 Client Types 별 Flow (인증 프로세스) file   황제낙엽 2024.02.02 2
69 [스프링 시큐리티 OAuth2] KeyCloak 실습 (Postman, Servlet) file   황제낙엽 2024.02.02 12
» docker keycloak 에 ssl 적용 결과 후기   황제낙엽 2024.02.01 31
67 docker keycloak 에 ssl 적용하기 위한 학습용 포스팅 모음   황제낙엽 2024.01.31 12
66 Keycloak 설치 관련 레퍼런스들 (with docker) https://www.keycloak.org/downloads  황제낙엽 2024.01.22 4
65 docker 를 이용하여 keycloak 실행 환경을 구축하는 포스팅 모음 (docker compose 포함)   황제낙엽 2024.01.22 10
64 KeyCloak 을 활용하여 사용자 인증을 처리하는 과정에 대한 포스팅 모음   황제낙엽 2024.01.20 3
63 [POST/2020.11.10] KeyCloak의 REST API 이용해서 JWT 발급과 검증 file https://oingdaddy.tistory.com/198  황제낙엽 2024.01.20 1
62 SAML roles 에 대하여   황제낙엽 2024.01.20 2
61 무료 Authorization Server 솔루션   황제낙엽 2024.01.18 3
60 Keycloak 에 대하여   황제낙엽 2024.01.18 3
59 OAuth2 구글(Google), Github, 카카오(Kakao), 네이버(Naver) 로그인 API 목록 https://choiseokwon.tistory.com/389  황제낙엽 2023.12.17 5
58 Spring Authorization Server 관련 포스트 목록과 인프런 강의   황제낙엽 2023.12.07 2
57 [POST/2023.05.22] OAuth 2.1 Authorization Server (Spring Security) 구축 후기 file https://tech.kakaopay.com/post/spring-oa...-practice/  황제낙엽 2023.12.03 3
56 OAuth 와 JWT 내용 정리 (개념 정의 및 적용 전략) file https://seungwoolog.tistory.com/95  황제낙엽 2023.12.03 3