Rabbitmq перезагружает/обновляет новые сертификаты без перезапуска

Я использую самозаверяющие сертификаты на своем сервере Rabbitmq, и брокер успешно запускается с портом SSL. Сейчас я пытаюсь обновить/использовать новые сертификаты SSL, ключ SSL и хранилище доверенных сертификатов, но я не хочу перезапускать работающий сервер rabbitmq, поскольку мое приложение должно работать непрерывно. Я проверил в Интернете решения для обновления/перезагрузки erlang/rabbitmq во время выполнения, чтобы прочитать/перезагрузить эти новые SSL-сертификаты, и я наткнулся на несколько ссылок, где они предлагали использовать — rabbitmqctl eval "ssl:stop(), ssl:start()." to reload certs.

Команда работала нормально, и новые сертификаты SSL были обновлены без перезапуска rabbitmq, но потребители/соединения были RESET, из-за чего мое приложение больше не может читать сообщения из очередей.

Не могли бы вы помочь мне с этой проблемой? Мне нравится перезагружать новые SSL-сертификаты без перезапуска RabbitMQ или приложения, и RabbitMQ должен нормально работать с моим приложением без сброса соединения. Если нет, подскажите, как снова восстановить соединения, чтобы мое приложение работало должным образом.


person Arun kumar R    schedule 04.07.2018    source источник
comment
Привет, давайте сделаем этот пост «живым мертвецом». У меня такой же вопрос. Похоже, что после обновления сертификата и запуска ---› rabbitmqctl eval ssl:stop(), ssl:start(). чтобы перезагрузить сертификаты, верните значение OK из приглашения. И, как и вы, кажется, что соединения СБРОСИЛИСЬ, и, кроме того, интерфейс управления, пока есть API, «сломан» и больше недоступен... Есть ли документированный способ, как это сделать? Обратите внимание, что это не кластерная установка.   -  person yield    schedule 07.11.2019


Ответы (1)


Оказывается, более новые версии Erlang автоматически обновляют свой кэш PEM, поэтому все, что вам нужно сделать, это установить новый сертификат и подождать несколько минут.

Если вам нужно принудительно использовать новый сертификат раньше, вы можете использовать

rabbitmqctl eval 'ssl:clear_pem_cache().'

И это перезагрузит сертификат без отключения каких-либо издателей или потребителей.

person morloch    schedule 13.08.2020