
Ich verwende Keycloak Quay 22.0.3 mit Docker-Compose hinter einem Nginx-Reverse-Proxy, habe aber einige Probleme aufgrund eines automatischen Ersetzens meines mit Certbot generierten Zertifikats.
Mein mit Certbot generiertes Zertifikat ist völlig in Ordnung, es besagt, dass es in 3 Monaten abläuft, (Ausgestellt von) sein CN ist R3 und seine Organisation ist Let’s Encrypt (wie die anderen Domänen).
Sobald ich Docker-Compose starte,MaiVerwenden Sie das richtige Zertifikat fürTZeit und es verwendet HTTPS, dann wird es plötzlich durch eins ersetzt, das ich nicht generiert habe, (Ausgestellt von) CN Cisco Umbrella Secondary SubCA ams-SG und Organisation Cisco und (Ausgestellt an) Organisation Cisco Systems, Inc., während es vorher leer war, und natürlich ist die Verbindung nicht mehr privat ( NET::ERR_CERT_AUTHORITY_INVALID
).
Dies ist meine Docker-Compose-Datei:
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
Und das ist meine Nginx-Konfiguration:
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
}
Die in Docker-Compose verwendeten Zertifikate sind /etc/letsencrypt/live/keycloak.hostname.com/*
und mit 655-Berechtigungen.
Bearbeiten
Ich habe vergessen zu erwähnen, dass das von Cisco Umbrella ausgestellte Zertifikat vom 17.09.2023 bis 22.09.2023 gültig ist.