2015-12-08 14 views
5

Den Anweisungen here folgend, habe ich eine Zertifizierungsstelle eingerichtet und die rabbitmq.config mit den entsprechenden Feldern erstellt. Aber wenn ich versuche, auf den RabbitMQ Server mitRabbitMQ + TLS: ssl_upgrade_error

openssl s_client -connect 127.0.0.1:5671 -tls1 

ich folgendes bekommen in der Standardausgabe zu verbinden:

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) 
--- 

und ich sehe den folgenden Fehler in den Protokollen:

=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}}}} 

Was könnte das Problem sein?

Ich habe folgendes versucht, ohne Erfolg:

  • die Berechtigungen von cacert.pem Aufmachen, das heißt, lief ich chmod 444 cacert.pem sowie einige hoffnungslosen Berechtigungen, keine Würfel.

  • Validated, dass alle Zwischenverzeichnisse über Berechtigungen von 775.

  • Validated, dass der RabbitMQ Server in der Tat auf Port 5671 zuhörte, und es war:

    $ sudo rabbitmq status 
    {listeners,[{clustering,25672,"::"},{amqp,5672,"::"},{'amqp/ssl',5671,"::"}]}, 
    
  • alle Pfade in rabbitmq.config Karo, und lockerte die Richtlinie für den Austausch von Zertifikaten durch Setzen von {verify,verify_none} und.

  • Aktiviert die Verwendung des rabbitmq_auth_mechanism_ssl Plugin über

    $ sudo rabbitmq-plugins enable rabbitmq_auth_mechanism_ssl 
    

    und bestätigt, dass es von rabbitmq-server abgeholt wurde. Zusätzlich fügte ich {auth_mechanisms, ['PLAIN', 'AMQPLAIN', 'EXTERNAL']} zu rabbitmq.config hinzu.

  • RabbitMQ-Version ist 3.5.4 (Standard apt-get), aber ich habe auch auf 3.5.6 (neueste) aktualisiert, um zu sehen, ob dies weggehen würde.

+0

Haben Sie die hier aufgeführten Dinge ausprobiert? https://www.rabbitmq.com/troubleshooting-ssl.html – xkcd149

+0

Haben Sie es geschafft, das Problem zu lösen? Ich habe genau das gleiche und die Troubleshooting-Seite von RabbitMQ ist völlig nutzlos. – Sebastien

Antwort

0

Nach viel Herumspielen und Suchen habe ich es endlich bekommen!

In meinem Fall wurde das Problem durch Besitz und Berechtigungen der Zertifizierungsdateien verursacht.

I edited meine /etc/rabbitmq/rabbitmq.config so dass das Zertifikat, Schlüssel und CaFile zu /etc/rabbitmq/conf/<file>.pem darauf, die ursprünglichen .pem Dateien in /etc/rabbitmq/conf/ dann ich chown -R rabbitmq:rabbitmq /etc/rabbitmq/conf kopiert und neu gestartet wird den Dienst service rabbitmq-server restart und es funktionierte.