rabbitmq - Rabbitmq 无需重启即可重新加载/刷新新证书
问题描述
我在我的 Rabbitmq 服务器中使用自签名证书,并且代理使用 SSL 端口成功启动。我现在正在尝试更新/使用新的 SSL 证书、SSL 密钥和信任库,但我不想重新启动正在运行的 rabbitmq 服务器,因为我的应用程序应该连续运行。我在线检查了在运行时刷新/重新加载 erlang/rabbitmq 以读取/重新加载这些新 SSL 证书的解决方案,我偶然发现了他们建议使用的几个链接 - rabbitmqctl eval "ssl:stop(), ssl:start()." to reload certs
。
该命令运行良好,并且新的 SSL 证书在没有 rabbitmq 重启的情况下被刷新,但是消费者/连接被重置,因为我的应用程序无法再从队列中读取消息。
你能帮我解决这个问题吗?我喜欢在不重新启动我的 rabbitmq 或应用程序的情况下重新加载新的 SSL 证书,并且 rabbitmq 必须在我的应用程序中正常工作而无需任何连接重置。如果不是请建议我如何重新建立连接,以便我的应用程序按预期运行。
解决方案
结果是较新版本的 Erlang 会自动更新他们的 PEM 缓存,所以您需要做的就是将新证书放在适当的位置,然后等待几分钟。
如果需要尽快强制使用新证书,可以使用
rabbitmqctl eval 'ssl:clear_pem_cache().'
这将在不断开任何发布者或消费者的情况下重新加载证书。
推荐阅读
- reactjs - redux-form - 在初始化后添加字段但保留脏值
- django - 将数据从表单传输到 django 视图
- firebase - Firebase 无法解决:firebase-messaging-15.0.0(以前的解决方案断开 Firebase 连接)
- java - Quartz CronTrigger - 触发时间
- vue-cli-3 - 使用 vue-cli-service build 时是否可以获得嵌套的 .vue 文件?
- postgresql - 有没有办法自动监控和终止正在静默进行的 AWS ECS 任务?
- javascript - 如何在 Vue 中更改道具时调用 Axios?
- javascript - 未捕获的 ReferenceError:未定义 selectAll
- django - django.urls.exceptions.NoReverseMatch:找不到“account_inactive”的反向。“account_inactive”不是有效的视图函数或模式名称
- java - 我的代码有什么问题?我无法打印条形码或二维码