Keycloak

De Wiki Castanedo.es
Revisión del 22:17 22 mar 2026 de Guzman (discusión | contribs.)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

Instalación Keycloak en Docker

Instalación de dhi.io/keycloak en Docker. Vamos a usar una imagen "Docker Hardened Image" (imágenes seguras, mínimas y listas para producción).

Requisitos

Para poder realizar esta configuración se necesita:

  • Servidor GNU Linux (ver Securizar Ubuntu Server)
    • Cortafuegos FirewallD (UFW tiene problemas con Docker)
  • Docker Engine (ver Docker Engine)
    • Módulo: Docker Compose (para PRO)
  • Nginx (ver LEMP)
  • Cuenta en Docker Hub
    • Necesario para acceder a Docker Hardened Image.

Entorno de DEV

Como entorno de DEV se va a usar Docker Desktop.

Login en catálogo DHI

docker login dhi.io

Descargar imagen

Vamos a usar la imagen que es la latest a día de hoy (26.5.6).

docker pull dhi.io/keycloak:26.5

Certificados SSL

Para poder arrancar la Keycloak hace falta tener certificados SSL/TLS. Nombres:

  • tls.crt: Certificado Fullchain (X.509 PEM)
  • tls.key: Clave RSA (PKCS#8)

Nota: en DEV usaremos auto-firmados y en PRO de Let's Encrypt.

Crear volumen para certificados SSL

  • Crear volumen "keycloak-certs"
docker volume create keycloak-certs
  • Copiar certificados en el "ldap-ssl":
cd /c/Users/guzman/Desktop/temp
docker create --name temp-copia -v keycloak-certs:/data alpine
docker cp entrardev.culturetas.net-fullchain.crt temp-copia:/data/tls.crt
docker cp entrardev.culturetas.net.key temp-copia:/data/tls.key
docker cp culturetas-root-ca.crt temp-copia:/data/ca.crt
docker rm temp-copia

Ejecutar contenedor en Docker Desktop (DEV)

docker run -d --name keycloak \
 --hostname entrardev.culturetas.net \
 --env KC_BOOTSTRAP_ADMIN_USERNAME=admin \
 --env KC_BOOTSTRAP_ADMIN_PASSWORD=admin \
 --env KC_HTTPS_CERTIFICATE_FILE=//etc/x509/https/tls.crt \
 --env KC_HTTPS_CERTIFICATE_KEY_FILE=//etc/x509/https/tls.key \
 --env KC_HOSTNAME=localhost \
 -p 127.0.0.1:8443:8443 \
 -v keycloak-certs:/etc/x509/https:ro \
 -v keycloak-data:/opt/keycloak/data/ \
 dhi.io/keycloak:26.5 start

Pruebas

Accedemos con un navegador web https://localhost:8443/.

Keycloak-DEV-Accesos.png

Entorno de PRO

En el entorno de PRO se va a desplegar transformando la configuración de Docker Desktop en fichero YAML de Docker Composer.

Configurar Virtual Host para Keycloak

  • Añadir Virtual Host:
sudo -i
vi /etc/nginx/sites-available/entrar.culturetas.net
  • Crear carpeta para VirtualHost:
mkdir /var/www/entrar.culturetas.net
  • Activar Virtual Host:
ln -s /etc/nginx/sites-available/entrar.culturetas.net /etc/nginx/sites-enabled/entrar.culturetas.net
systemctl reload nginx

Generar certificados Let's Encrypt

certbot --nginx

Habilitar LDAPS en FirewallD

Crear carpetas para Keycloak

mkdir -p /opt/keycloak/data

Generar fichero YAML

vi /opt/keycloak/compose.yaml

Arrancar OpenLDAP (manual)

cd /opt/keycloak
docker compose up -d

Parar OpenLDAP (manual)

cd /opt/keycloak
docker compose down

Arrancar OpenLDAP (con SystemD)

  • Crear fichero SystemD
vi /etc/systemd/system/keycloak.service
  • Arrancar y habilitar
systemctl daemon-reload
systemctl start keycloak
systemctl enabled keycloak

Referencias