Rabbitmq重新加载/刷新新证书而无需重启

Aru*_*r R 5 ssl-certificate rabbitmq spring-amqp rabbitmqctl spring-rabbitmq

我在Rabbitmq服务器中使用自签名证书,并且该代理已通过SSL端口成功启动。我现在正在尝试续订/使用新的SSL证书,SSL密钥和信任库,但由于我的应用程序应连续运行,因此我不想重新启动正在运行的Rabbitmq服务器。我在网上检查了解决方案,以在运行时刷新/重新加载erlang / rabbitmq来读取/重新加载这些新的SSL证书,但我偶然发现了一些建议使用-的链接rabbitmqctl eval "ssl:stop(), ssl:start()." to reload certs

该命令运行良好,并且无需重启rabbitmq即可刷新新的SSL证书,但是使用方/连接已重置,因此我的应用程序不再能够从队列中读取消息。

您能帮我解决这个问题吗?我想重新加载新的SSL证书而无需重新启动我的Rabbitmq或应用程序,并且Rabbitmq必须能够在不重置任何连接的情况下与我的应用程序正常工作。如果不是,请就如何重新建立连接提出建议,以使我的应用程序按预期运行。

mor*_*och 8

事实证明,较新版本的 Erlang 会自动更新其 PEM 缓存,因此您所需要做的就是将新证书放置到位,然后等待几分钟。

如果您需要尽快强制使用新证书,可以使用

rabbitmqctl eval 'ssl:clear_pem_cache().'
Run Code Online (Sandbox Code Playgroud)

这将重新加载证书,而不会断开任何发布者或消费者的连接。