RabbitMQ+TLS: ssl_upgrade_error

Следуя указаниям, изложенным здесь, я настроил центр сертификации и создал rabbitmq.config с соответствующими полями. . Однако, когда я пытаюсь подключиться к серверу RabbitMQ с помощью

openssl s_client -connect 127.0.0.1:5671 -tls1

Я получаю следующее в стандартном выводе:

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

и я вижу следующую ошибку в журналах:

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

В чем может быть проблема?

Я пробовал следующее, но безуспешно:

  • Открываю разрешения cacert.pem, т.е. я запускал chmod 444 cacert.pem и еще какие-то безнадежные разрешения, без костей.

  • Подтверждено, что все промежуточные каталоги имеют разрешения 775.

  • Подтверждено, что сервер RabbitMQ действительно прослушивал порт 5671, и это было:

    $ sudo rabbitmq status
    {listeners,[{clustering,25672,"::"},{amqp,5672,"::"},{'amqp/ssl',5671,"::"}]},
    
  • Проверил все пути в rabbitmq.config и ослабил политику обмена сертификатами, установив {verify,verify_none} и {fail_if_no_peer_cert,false}.

  • Включено использование плагина rabbitmq_auth_mechanism_ssl через

    $ sudo rabbitmq-plugins enable rabbitmq_auth_mechanism_ssl
    

    и подтвердил, что его подобрал rabbitmq-server. Кроме того, я добавил {auth_mechanisms, ['PLAIN', 'AMQPLAIN', 'EXTERNAL']} к rabbitmq.config.

  • Версия RabbitMQ — 3.5.4 (по умолчанию apt-get), но я также обновился до 3.5.6 (последняя), чтобы посмотреть, исчезнет ли это.


person user14717    schedule 08.12.2015    source источник
comment
Вы пробовали то, что здесь перечислено? rabbitmq.com/troubleshooting-ssl.html   -  person xkcd149    schedule 18.12.2015
comment
Вам удалось решить проблему? У меня точно такой же, и страница устранения неполадок от rabbitMQ совершенно бесполезна.   -  person Sebastien    schedule 02.02.2018


Ответы (1)


После долгих возни и поисков я НАКОНЕЦ-ТО получил его!

В моем случае проблема была вызвана владением файлами сертификации и разрешениями.

Я отредактировал свой /etc/rabbitmq/rabbitmq.config так, чтобы сертификат, ключ и CAfile указывали на /etc/rabbitmq/conf/<file>.pem, скопировал исходные файлы .pem в /etc/rabbitmq/conf/, затем я chown -R rabbitmq:rabbitmq /etc/rabbitmq/conf перезапустил службу service rabbitmq-server restart и все заработало.

person Sebastien    schedule 01.02.2018