4332gelesen 0Kommentare
Wer die Nachrichten-orientierte Middleware RabbitMQ im Einsatz hat, kommt vielleicht in den gleichen Genuss wie ich. Die Datenkommunikation muss verschlüsselt werden, sprich auf SSL-Ebene gehoben werden.
Bei mir kommt das Thema durch die Installation einer OpenStack-Instanz.
Vorbereitung
Sofern die Kommunikation über das öffentlich verfügbare Netz läuft, kann ein Zertifikat von letsencrypt verwendet werden. Ich verwende hierfür die Python-App certbot
.
certbot -d xxx.yyy.zzz
Sonst kannst du auch ein eigenes Zertifikat erstellen oder ein gekauftes verwenden.
RabbitMQ Konfiguration
Jetzt muss die RabbitMQ-Konfiguration noch erweitert werden. Dazu musst du (sofern nicht vorhanden die Datei: rabbitmq.config
erstellen. Im Falle eines letsencrypt-Zertifikates sieht der Inhalt für die SSL-Konfiguration so aus:
[
{ssl, [{versions, ['tlsv1.2', 'tlsv1.1']}]},
{rabbit, [
{tcp_listeners, [] },
{ssl_listeners, [{"xxx.yyy.zzz", 5671}] },
{ssl_options, [
{cacertfile,"/etc/letsencrypt/live/xxx.yyy.zzz/fullchain.pem"},
{certfile,"/etc/letsencrypt/live/xxx.yyy.zzz/cert.pem"},
{keyfile,"/etc/letsencrypt/live/xxx.yyy.zzz/privkey.pem"},
{verify,verify_peer},
{fail_if_no_peer_cert,true}
]}
]}
].
Nach dem Neustart läuft RabbitMQ auf dem Port 5671 im SSL-Modus.