Следуя указаниям, изложенным здесь, я настроил центр сертификации и создал 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 (последняя), чтобы посмотреть, исчезнет ли это.