Provisionner un service RabbitMQ sur Ecloud dans une machine virtuelle Debian
Approvisionnement dans ECloud
- Rendez vous sur le catalogue de service de ECloud https://im2ag-ecloud-vra.u-ga.fr/catalog/#/library

- Choisissez le modèle RabbitMQ et puis remplissez le formulaire de création de cette infrastructure avec les identifiants de la machine virtuelle et le serveur RabbitMQ à installer dessus.

- Soumettez le formulaire.
Accès au serveur
Vous verrez l’IP de la machine dans l’onglet Deployment sous le champs Address.
Le port 4200 sert pour le protocole AMQP.
Le port 4201 sert pour accéder à l’interface de gestion web.
Accès à l’interface de gestion
Ouvrez un navigateur web et rendez-vous à l’adresse:
http://<ADRESSE_IP_VM>:4201
Utilisez les identifiants du serveur RabbitMQ pour vous connecter à l’interface de gestion.
A ce stade le serveur est prêt à l’utilisation.
Configurer RabbitMQ avec SSL/TLS
Ce guide documente étape par étape la configuration de RabbitMQ avec TLS/SSL afin de sécuriser les communications :
- AMQP sécurisé (AMQPS) sur le port 4200
- Interface web sécurisée via HTTPS sur le port 4201
Seuls les ports de 4200 à 4210 sont autorisés pour les étudiants.
Connectez vous à la VM avec les identifiants définis à la création de cette infrastructure.
Étape 1 – Modifier le fichier de configuration RabbitMQ
Éditer le fichier avec sudo nano /etc/rabbitmq/rabbitmq.conf.
Supprimer les lignes suivantes:
# Port AMQP
# listeners.tcp.default = 4200
# Port pour l’interface de management (web UI)
# management.listener.port = 4201
Ajouter à la place :
# ================================
# TLS pour AMQP (AMQPS)
# ================================
listeners.ssl.default = 4200
ssl_options.cacertfile = /etc/rabbitmq/ssl/server.crt
ssl_options.certfile = /etc/rabbitmq/ssl/server.crt
ssl_options.keyfile = /etc/rabbitmq/ssl/server.key
ssl_options.verify = verify_none
ssl_options.fail_if_no_peer_cert = false
# ================================
# TLS pour l'interface web
# ================================
management.ssl.port = 4201
management.ssl.cacertfile = /etc/rabbitmq/ssl/server.crt
management.ssl.certfile = /etc/rabbitmq/ssl/server.crt
management.ssl.keyfile = /etc/rabbitmq/ssl/server.key
management.ssl.verify = verify_none
management.ssl.fail_if_no_peer_cert = false
Sauvegardez les modifications avec Ctrl+s et fermez le fichier avec Ctrl+x.
Étape 2 – Générer les certificats SSL
Dans un terminal sur la VM :
sudo mkdir -p /etc/rabbitmq/ssl
cd /etc/rabbitmq/ssl
# Créer la clé privée
sudo openssl genrsa -out server.key 2048
# Créer le certificat auto-signé
sudo openssl req -new -x509 -key server.key -out server.crt -days 365
# Générer un fichier PEM combiné
sudo cat server.key server.crt | sudo tee /etc/rabbitmq/ssl/server.pem > /dev/null
Lors de la génération, indiquer localhost comme Common Name (CN) pour éviter les erreurs de vérification.
Étape 3 – Autoriser le serveur RabbitMQ à lire les certificats SSL
sudo chown rabbitmq:rabbitmq /etc/rabbitmq/ssl/server.*
sudo chmod 640 /etc/rabbitmq/ssl/server.key
sudo chmod 644 /etc/rabbitmq/ssl/server.crt
Étape 4 – Redémarrer RabbitMQ
sudo systemctl restart rabbitmq-server
Étape 5 – Vérifier l’interface web sécurisée
Ouvrir un navigateur sur l’URL :
https://<IP_VM>:4201
Il est normal qu’un avertissement s’affiche avec un certificat auto-signé.
Étape 6 – Tester AMQPS avec Python
Installer les outils nécessaires
sudo apt install python3-pip
sudo apt install python3.11-venv
Créer un environnement virtuel Python
python3 -m venv mon_env
source mon_env/bin/activate
pip install pika
Script Python de test
Créer un fichier prog.py avec le contenu suivant :
import pika
import ssl
context = ssl.create_default_context(cafile="/etc/rabbitmq/ssl/server.crt")
context.check_hostname = False
context.verify_mode = ssl.CERT_REQUIRED
credentials = pika.PlainCredentials("Identifiant", "MotDePasse")
connection = pika.BlockingConnection(
pika.ConnectionParameters(
host='localhost',
port=4200,
ssl_options=pika.SSLOptions(context),
credentials=credentials
)
)
print("Connexion AMQPS réussie !")
Pensez à remplacer (“Identifiant”, “MotDePasse”) par le login et mot de passe que vous avez définis lors de la création du serveur.
Lancez votre programme de test:
python3 prog.py
Si tout fonctionne, le script affichera :
Connexion AMQPS réussie !
Remarques sur le déploiement via une VM sous Debian
Accès Root
- Vous avez à votre disposition une machine avec un système d’exploitation complet et vous pouvez vous connecter en root sur cette machine pour personnaliser votre serveur.
Durée d’utilisation
- Chaque infrastructure RabbitMQ est automatiquement arrêtée 24 heures après son démarrage.
- Cela permet de libérer de la mémoire sur les serveurs et d’éviter que des machines inutilisées restent actives indéfiniment.
- Rien n’est perdu!! vos fichiers et vos travaux restent sur la VM.
- Pour reprendre là où vous en étiez, il suffit de rallumer la machine depuis Service Broker Il faudra cliquer sur les trois points à gauche de votre deployment, puis Change Lease et choisir le jour suivant. Un nouveau délai de 24h commence après la soumission.
Pour supprimer un déploiements, allez dans la page de vos déploiements.
Cliquez sur les trois points verticaux et puis choissiez Delete et puis Submit
⚠️ Important
Merci de bien supprimer tous les déploiements que vous avez créés à la fin de la séance afin d’éviter toute consommation inutile.