Eu tenho tentado instalar meus certificados gerados pelo LetsEncrypt no meu servidor rabbitmq, mas não tive sorte.
Para testar as coisas sem ter que lutar contra problemas de permissão, copiei os arquivos pem de
/etc/letsencrypt/live/<domain>/
para o meu diretório pessoal. Eu também copiei o arquivo cacert.pem para meu diretório pessoal a partir do local em que o encontrei:
/home/<user>/.local/share/letsencrypt/lib/python2.7/site-packages/requests/cacert.pem
Eu decidi começar tentando instalar os certificados no topo do plug-in de gerenciamento editando o rabbitmq.config para adicionar
{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
No entanto, ao tentar navegar para a porta do plug-in de gerenciamento, meus arquivos de log rabbitmq continham um tls_alert
=ERROR REPORT==== 14-Dec-2015::03:08:05 ===
application: mochiweb
"Accept failed error"
"{error,{tls_alert,\"decode error\"}}"
Estou usando os arquivos corretos ou talvez haja um problema mais profundo que estou enfrentando?
UPDATE Detalhes da geração de certificados:
Vamos criptografar foi instalado clonando o repositório git em:
git clone https://github.com/letsencrypt/letsencrypt
Detalhes da criação de certificados. O certificado do servidor foi criado e instalado usando o conjunto de ferramentas Lets Encrypt com o seguinte comando.
./letsencrypt-auto --server https://acme-v01.api.letsencrypt.org/directory -d <domain>
Uma observação é que é um certificado de subdomínio. Por exemplo, xxxx.domain.com.
UPDATE 2
Verifiquei se os certificados são válidos e estão funcionando para a parte AMQPS do problema. Eu modifiquei a opção de configuração principal para conter
{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}]}
Veja a imagem anexada para captura de tela dos clientes Pika habilitados para SSL