2015-12-08 19 views
5

Seguendo le istruzioni indicate here, ho impostato un'autorità di certificazione e creato lo rabbitmq.config con i campi appropriati. Tuttavia, quando provo a connettersi al server RabbitMQ conRabbitMQ + TLS: ssl_upgrade_error

openssl s_client -connect 127.0.0.1:5671 -tls1 

ottengo il seguente in uscita standard:

CONNECTED(00000003) 
write:errno=104 
--- 
no peer certificate available 
--- 
No client certificate CA names sent 
--- 
SSL handshake has read 0 bytes and written 0 bytes 
--- 
New, (NONE), Cipher is (NONE) 
Secure Renegotiation IS NOT supported 
Compression: NONE 
Expansion: NONE 
No ALPN negotiated 
SSL-Session: 
    Protocol : TLSv1 
    Cipher : 0000 
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 
    Key-Arg : None 
    PSK identity: None 
    PSK identity hint: None 
    SRP username: None 
    Start Time: 1449612785 
    Timeout : 7200 (sec) 
    Verify return code: 0 (ok) 
--- 

e vedo il seguente errore nei registri:

=ERROR REPORT==== 8-Dec-2015::16:13:10 === 
Error on AMQP connection <0.257.0>: 
{ssl_upgrade_error, 
    {options, 
     {cacertfile,"/home/nthompson/learn_celery/testca/cacert.pem", 
      {error,eacces}}}} 

Quale potrebbe essere il problema?

ho provato quanto segue, senza successo:

  • aprire i permessi di cacert.pem, vale a dire, mi sono imbattuto chmod 444 cacert.pem così come alcune autorizzazioni più disperata, niente da fare.

  • Validated che tutte le directory intermedie dispone delle autorizzazioni di 775.

  • Convalidato che il server RabbitMQ è stato effettivamente in ascolto sulla porta 5671, ed è stato:

    $ sudo rabbitmq status 
    {listeners,[{clustering,25672,"::"},{amqp,5672,"::"},{'amqp/ssl',5671,"::"}]}, 
    
  • Controllato tutti i percorsi in rabbitmq.config, e ha allentato la politica di cambio dei certificati impostando {verify,verify_none} e {fail_if_no_peer_cert,false}.

  • abilitato l'uso del plugin rabbitmq_auth_mechanism_ssl via

    $ sudo rabbitmq-plugins enable rabbitmq_auth_mechanism_ssl 
    

    e verificato che è stato raccolto da rabbitmq-server. Inoltre, ho aggiunto {auth_mechanisms, ['PLAIN', 'AMQPLAIN', 'EXTERNAL']} allo rabbitmq.config.

  • La versione di RabbitMQ è la 3.5.4 (predefinita apt-get), ma ho anche eseguito l'aggiornamento a 3.5.6 (l'ultima) per vedere se questo sarebbe andato via.

+0

Hai provato le cose elencate qui? https://www.rabbitmq.com/troubleshooting-ssl.html – xkcd149

+0

Sei riuscito a risolvere il problema? Ho la stessa identica e la pagina di risoluzione dei problemi di rabbitMQ è completamente inutile. – Sebastien

risposta

0

Dopo un sacco di scherzi e ricerche ho FINALMENTE capito!

Nel mio caso, il problema è stato causato dalla proprietà e dalle autorizzazioni dei file di certificazione.

ho modificato il mio /etc/rabbitmq/rabbitmq.config in modo che il certificato, chiave e CAFile indicò /etc/rabbitmq/conf/<file>.pem, copiare i file originali .pem in /etc/rabbitmq/conf/ poi ho chown -R rabbitmq:rabbitmq /etc/rabbitmq/conf e riavviato il servizio service rabbitmq-server restart e ha funzionato.