Agrupamento TLS RabbitMQ - “segurança insuficiente”

2

Atualmente, estou configurando um cluster RabbitMQ em que um requisito é que toda a comunicação dentro do cluster seja criptografada.

Eu segui o guia no link - criei um arquivo com o certificado e a chave e passei os argumentos SSL para rabbitmq-server como variáveis de ambiente:

RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS='-pa /usr/lib/erlang/lib/ssl-7.1/ebin -proto_dist inet_tls -ssl_dist_opt server_certfile /etc/ssl/certs/rabbit.pem'
RABBITMQ_CTL_ERL_ARGS='-pa /usr/lib/erlang/lib/ssl-7.1/ebin -proto_dist inet_tls -ssl_dist_opt server_certfile /etc/ssl/certs/rabbit.pem'

O servidor é inicializado bem e ouve com o TLS ativado, mas não posso emitir nenhum comando para ele via rabbitmqctl:

# rabbitmqctl status
Status of node rabbit@rabbit01 ...
Error: unable to connect to node rabbit@rabbit01: nodedown

DIAGNOSTICS
===========

attempted to contact: [rabbit@rabbit01]

rabbit@rabbit01:
  * connected to epmd (port 4369) on rabbit01
  * epmd reports node 'rabbit' running on port 47965
  * TCP connection succeeded but Erlang distribution failed
  * suggestion: hostname mismatch?
  * suggestion: is the cookie set correctly?
  * suggestion: is the Erlang distribution using TLS?

No lado do servidor, não obtenho muito nos logs além do completamente inútil:

=ERROR REPORT==== 30-Dec-2015::13:08:58 ===
SSL: hello: tls_handshake.erl:167:Fatal error: insufficient security

Um pouco de pesquisa indicou que isso pode ser devido a uma incompatibilidade de conjunto de criptografia, mas meu entendimento aqui é que ambos usariam a mesma biblioteca SSL.

As quotas de Erlang têm suporte a SSL ativado conforme verificado no link , e eu posso fazer uma conexão segura com o certificado com s_server e s_client de openssl.

Não sei qual será o próximo passo para solucionar esse problema e não encontrei nenhum problema conhecido em nenhum cluster - infelizmente, a maior parte da documentação do RabbitMQ sobre o TLS é para o protocolo AMQP e não para o cluster interno.

Eu testei usando o openSSL para conectar-se à instância do RabbitMQ em execução e obter um erro muito semelhante:

# openssl s_client -connect localhost:47965
CONNECTED(00000003)
140004605863584:error:1407742F:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert insufficient security:s23_clnt.c:770:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 295 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---

 openssl s_client -connect localhost:47965 -tls1_2
CONNECTED(00000003)
140400037775008:error:1409442F:SSL routines:SSL3_READ_BYTES:tlsv1 alert insufficient security:s3_pkt.c:1262:SSL alert number 71
140400037775008:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:598:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000
    Session-ID:
    Session-ID-ctx:
    Master-Key:
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1451944018
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
---
    
por user5416 30.12.2015 / 20:17

0 respostas