Keycloak이 자동으로 인증서를 변경합니다.

Keycloak이 자동으로 인증서를 변경합니다.

Nginx 리버스 프록시 뒤에 docker-compose와 함께 Keycloak Quay 22.0.3을 사용하고 있지만 certbot으로 생성된 인증서가 자동으로 교체되기 때문에 몇 가지 문제가 있습니다.

certbot으로 생성된 내 인증서는 전혀 문제가 없습니다. 지금부터 3개월 후에 만료된다고 나와 있습니다. (발행자) CN은 R3이고 조직은 Let's Encrypt(다른 도메인과 마찬가지로)입니다.

도커를 시작하면 작성합니다.5월올바른 인증서를 사용하세요.HTTPS를 사용하다가 갑자기 내가 생성하지 않은 것으로 대체됩니다. (발행자) CN Cisco Umbrella Secondary SubCA ams-SG 및 조직 Cisco 및 (발행자) 조직 Cisco Systems, Inc. 이전에는 비어 있었고 물론 연결은 더 이상 비공개가 아닙니다( NET::ERR_CERT_AUTHORITY_INVALID).

이것은 내 docker-compose 파일입니다.

version: "3.9"

services:
  keycloak:
    container_name: "keycloak"
    image: quay.io/keycloak/keycloak:22.0.3
    environment:
      KC_DB: mysql
      KC_DB_URL: jdbc:mysql://database_container:3306/keycloak
      KC_DB_USERNAME: username
      KC_DB_PASSWORD: password
      KEYCLOAK_ADMIN: kc_admin
      KEYCLOAK_ADMIN_PASSWORD: kc_admin_password
      KC_HOSTNAME: keycloak.hostname.com
      KC_HOSTNAME_STRICT_HTTPS: "false"
    ports:
      - "8443:8443"
    volumes:
      - /keycloak/certs/fullchain.pem:/etc/x509/https/tls.crt
      - /keycloak/certs/privkey.pem:/etc/x509/https/tls.key
    command:
      start --https-certificate-file=/etc/x509/https/tls.crt --https-certificate-key-file=/etc/x509/https/tls.key --hostname-strict=false
    networks:
      - my_network

networks:
  my_network:
    name: my_network
    external: true

그리고 이것은 내 Nginx 구성입니다.

server {
    server_name www.keycloak.hostname.com keycloak.hostname.com;

    location / {
        proxy_pass https://ip_address:8443/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP \$remote_addr;
        proxy_buffer_size 256k;
        proxy_buffers 4 512k;
        proxy_busy_buffers_size 512k;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }


    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/keycloak.hostname.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/keycloak.hostname.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {
    if ($host = www.keycloak.hostname.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = keycloak.hostname.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    server_name www.keycloak.hostname.com keycloak.hostname.com;
    listen 80;
    return 404; # managed by Certbot
}

docker-compose에 사용되는 인증서는 /etc/letsencrypt/live/keycloak.hostname.com/*655 권한입니다.

편집하다

Cisco Umbrella에서 발행한 인증서는 2023년 9월 17일부터 2023년 9월 22일까지 유효하다는 사실을 잊어버렸습니다.

관련 정보