Aktiveren von WSS (WebSocket über TLS) in RabbitMQ unter Windows

Wenn der Web Client über HTTPS läuft, muss auch die Verbindung zum WebStomp über TLS laufen, da der Browser eine Verbindung von einer sicheren (HTTPS) Seite auf eine unsichere Seite blockiert.

Dazu muss in RabbitMQ WSS aktiviert werden. Um dies zu Bewerkstelligen, muss unter %appdata%\RabbitMQ die Datei rabbitmq.conf mit dem folgendem Inhalt angelegt werden:

web_stomp.ssl.port = 15673 web_stomp.ssl.backlog = 1024 web_stomp.ssl.cacertfile = C:\...\cacert.pem web_stomp.ssl.certfile = C:\...\cert.pem web_stomp.ssl.keyfile = C:\...\key.pem web_stomp.ssl.password = 1234

Hier muss der Pfade zu den PEM-Dateien und das Password angepasst werden. Nach einem Neustart von RabbitMQ ist dann WSS unter dem Port 15673 verfügbar.

In der Project und Client-Service config.json muss dann unter public_addresses\message_queue_stomp dann auch nun statt

"address": "ws://<host>:15672/ws"

die folgende Addresse eingetragen werden:

"address": "wss://<host>:15673/ws"

angegeben werden. Wichtig ist, dass der Hostname der selbe ist, der auch im Zertifikat hinterlegt ist.

Falls das SSL Zertifikat als PFX vorliegt, kann dies über OpenSSL mit den folgenden Befehlen konvertiert werden: