Ich habe versucht, meine von LetsEncrypt generierten Zertifikate auf meinem rabbitmq-Server zu installieren, hatte aber kein Glück.
Um Dinge zu testen, ohne Berechtigungsprobleme bekämpfen zu müssen, habe ich die PEM-Dateien von kopiert
/etc/letsencrypt/live/<domain>/
in mein Home-Verzeichnis. Ich habe auch die Datei cacert.pem von dem Speicherort, an dem ich sie gefunden habe, in mein Home-Verzeichnis kopiert:
/home/<user>/.local/share/letsencrypt/lib/python2.7/site-packages/requests/cacert.pem
Ich beschloss, zunächst zu versuchen, die Zertifikate über dem Verwaltungs-Plugin zu installieren, indem ich die hinzuzufügende Datei rabbitmq.config bearbeitete
{rabbitmq_management,
[%% Pre-Load schema definitions from the following JSON file. See
%% http://www.rabbitmq.com/management.html#load-definitions
%%
%% {load_definitions, "/path/to/schema.json"},
%% Log all requests to the management HTTP API to a file.
%%
%% {http_log_dir, "/path/to/access.log"},
%% Change the port on which the HTTP listener listens,
%% specifying an interface for the web server to bind to.
%% Also set the listener to use SSL and provide SSL options.
%%
{listener, [{port, 12345},
{ip, "127.0.0.1"},
{ssl, true},
{ssl_opts, [{cacertfile, "/home/<user>/cacert.pem"}, %% File pulled from /home/<user>/.local....
{certfile, "/home/<user>/cert.pem"}, %% File pulled from /etc/letsencrypt/live/<domain>/cert.pem
{keyfile, "/home/<user>/privkey.pem"}]}]} %% File pulled from /etc/letsencrypt/live/<domain>/privkey.pem
Beim Versuch, zum Management-Plugin-Port zu navigieren, enthielten meine rabbitmq-Protokolldateien jedoch einen tls_alert
=ERROR REPORT==== 14-Dec-2015::03:08:05 ===
application: mochiweb
"Accept failed error"
"{error,{tls_alert,\"decode error\"}}"
Benutze ich die richtigen Dateien oder gibt es vielleicht ein tieferes Problem, auf das ich stoße?
Details zur UPDATE- Zertifikatgenerierung: Die Verschlüsselung wurde durch Klonen des Git-Repositorys unter folgender Adresse installiert:
git clone https://github.com/letsencrypt/letsencrypt
Details zur Zertifikaterstellung. Das Serverzertifikat wurde mithilfe der Lets Encrypt-Tool-Suite mit dem folgenden Befehl erstellt und installiert.
./letsencrypt-auto --server https://acme-v01.api.letsencrypt.org/directory -d <domain>
Ein Hinweis ist, dass es sich um ein Subdomain-Zertifikat handelt. ZB xxxx.domain.com.
UPDATE 2 Ich habe überprüft, ob die Zertifikate gültig sind und für den AMQPS-Teil des Problems funktionieren. Ich habe die Hauptkonfigurationsoption so geändert, dass sie enthält
{ssl_listeners, [5671]},
{ssl_options, [{cacertfile, "/etc/rabbitmq/chain1.pem"},
{certfile, "/etc/rabbitmq/cert1.pem"},
{keyfile, "/etc/rabbitmq/privkey1.pem"},
{verify, verify_none},
{fail_if_no_peer_cert, false}]}
Im angehängten Bild finden Sie einen Screenshot der SSL-fähigen Pika-Clients
quelle
Antworten:
Es gibt wirklich ein Problem mit
RabbitMQ 3.2.4
.Ich habe genau die gleiche Konfiguration (wie Sie, zumindest den SSL-Teil) für
Ubuntu 14.04
(RabbitMQ 3.2.4
undErlang 16.b3
) und /Ubuntu 15.10
oderCentos 7
(mitRabbitMQ 3.5.4
undErlang 18.0
) vorgenommen.Ich bekomme es in 3.5.4 zum Laufen und nicht in 3.2.4 {mochiweb_socket_server, 295, {acceptor_error, {error, accept_failed}}}. Ich kann noch keinen geöffneten Fehlerbericht finden, aber es ist sicherlich ein Problem im Zusammenhang mit dem Management-Plugin, da die Zertifikate in der neueren Version perfekt funktionieren.
quelle