Déploiement Keycloak sur VPS Ubuntu

🚀 Déploiement de Keycloak en Production sur un VPS Ubuntu

Un guide étape par étape pour installer, configurer et sécuriser Keycloak sur un serveur Ubuntu, prêt pour la production.

1. 📋 Pré-requis

  • Un VPS Ubuntu 22.04+ avec accès root ou un utilisateur sudoer
  • Un nom de domaine configuré pointant vers l’IP de votre VPS (ex : auth.mondomaine.com)
  • Java 17 installé (Keycloak 24+ l’exige)
  • Certificat SSL (via Let’s Encrypt ou autre)
  • Ports ouverts : 80 (HTTP) et 443 (HTTPS)

2. 📦 Installation de Java

Keycloak nécessite Java 17 (ou compatible) pour fonctionner.

sudo apt update && sudo apt upgrade -y
sudo apt install openjdk-17-jdk -y
java -version

3. 📥 Téléchargement de Keycloak

On récupère la dernière version depuis le site officiel :

cd /opt
sudo wget https://github.com/keycloak/keycloak/releases/download/26.0.7/keycloak-26.0.7.tar.gz
sudo tar -xvzf keycloak-26.0.7.tar.gz
sudo mv keycloak-26.0.7 keycloak
sudo rm keycloak-26.0.7.tar.gz

4. 👤 Création d’un utilisateur dédié

On ne lance jamais Keycloak en root.

sudo useradd -r -d /opt/keycloak -s /sbin/nologin keycloak
sudo chown -R keycloak:keycloak /opt/keycloak

5. ⚙️ Configuration de Keycloak

Éditez le fichier keycloak.conf :

sudo nano /opt/keycloak/conf/keycloak.conf

Exemple de configuration pour production avec Nginx en reverse proxy :

# Mode prod
hostname=https://auth.mondomaine.com
hostname-strict=true
hostname-strict-https=true

# Reverse proxy
proxy=edge

# Adresse d'écoute interne
http-enabled=true
http-port=8080

6. 🛠 Construction en mode production

Keycloak doit être “buildé” avant lancement en prod :

cd /opt/keycloak
sudo -u keycloak ./bin/kc.sh build

7. 🗄 Création d’un service systemd

Pour gérer Keycloak facilement :

sudo nano /etc/systemd/system/keycloak.service
[Unit]
Description=Keycloak Server
After=network.target

[Service]
User=keycloak
Group=keycloak
WorkingDirectory=/opt/keycloak
ExecStart=/opt/keycloak/bin/kc.sh start --optimized
Restart=always
RestartSec=10
Environment=JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64

[Install]
WantedBy=multi-user.target

Recharge systemd et active le service :

sudo systemctl daemon-reload
sudo systemctl enable keycloak
sudo systemctl start keycloak

Vérification :

sudo systemctl status keycloak

8. 🌐 Mise en place du Reverse Proxy Nginx

Installez Nginx :

sudo apt install nginx -y

Création du fichier de conf :

sudo nano /etc/nginx/sites-available/keycloak.conf
server {
    listen 80;
    server_name auth.mondomaine.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Activation :

sudo ln -s /etc/nginx/sites-available/keycloak.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

9. 🔒 Activation HTTPS avec Certbot

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d auth.mondomaine.com
sudo systemctl reload nginx

10. 👨‍💻 Création d’un compte administrateur

Keycloak en prod n’autorise pas la création via l’UI si aucun admin n’existe. On utilise la commande suivante :

sudo -u keycloak /opt/keycloak/bin/kc.sh create-admin --user admin --password MonMotDePasseFort

11. ✅ Vérification

  • Accédez à : https://auth.mondomaine.com
  • Connectez-vous avec l’admin créé
  • Changez le mot de passe temporaire si nécessaire
  • Supprimez l’admin temporaire si présent

12. 🛡 Sécurisation et optimisation

  • Restreindre Keycloak à l’accès via le reverse proxy (firewalld ou ufw)
  • Activer HTTPS only
  • Sauvegarder régulièrement la base de données (PostgreSQL recommandé en prod)
  • Surveiller les logs :
sudo journalctl -u keycloak -f

📌 Conclusion

Avec cette configuration, Keycloak tourne en mode production, protégé par Nginx + SSL, lancé via systemd, et isolé sous un utilisateur non-root.
Ce déploiement est scalable et prêt pour gérer vos authentifications en toute sécurité.

Une question, un souci sur Keycloak ?

N'hésitez pas à me contacter : je réponds à toutes vos questions et vous accompagne dans vos projets IAM et sécurité.

Me contacter

Articles recommandés

Voir tous les articles
Sécuriser Keycloak en production Sécurité

Sécuriser Keycloak : Bonnes pratiques 2025

Découvrez comment protéger efficacement votre instance Keycloak contre les menaces actuelles.

Lire l'article
Alternatives à Keycloak Comparatif

Top 5 des alternatives à Keycloak en 2025

Auth0, Gluu, WSO2... Quel IAM choisir selon vos besoins ?

Lire l'article
Optimiser Keycloak Performance

Optimiser les performances de Keycloak

Astuces et outils pour accélérer vos authentifications et améliorer la gestion de vos utilisateurs.

Lire l'article