相关疑难解决方法(0)

如何在启动RabbitMQ Docker容器时添加初始用户?

目前我正在使用DockerHub中的默认RabbitMQ映像启动RabbitMQ Docker容器.使用以下命令.

docker run --restart=always \
-d \
-e RABBITMQ_NODENAME=rabbitmq \
-v /opt/docker/rabbitmq/data:/var/lib/rabbitmq/mnesia/rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
--name rabbitmq rabbitmq:3-management
Run Code Online (Sandbox Code Playgroud)

我需要在首次启动映像时提供默认用户/和虚拟主机.例如,创建默认的"测试用户".

目前,我必须通过使用管理插件并通过web ui添加用户/虚拟主机来手动执行此操作.有没有办法在启动RabbitMQ图像时提供默认设置?

rabbitmq docker

45
推荐指数
7
解决办法
3万
查看次数

如何为RabbitMQ Management HTTP API生成password_hash

心爱的RabbitMQ管理插件有一个HTTP API,可以通过普通的HTTP请求来管理RabbitMQ.

我们需要以编程方式创建用户,并且HTTP API是您选择的方式.文档很少,但API非常简单直观.

关注安全性,我们不希望以纯文本形式传递用户密码,而API提供了一个字段来代替发送密码哈希.从那里引用:

[GET | PUT | DELETE]/api/users/name

个人用户.要使用户,你需要一个看起来像这样的身体:

{"password":"secret","tags":"administrator"}
Run Code Online (Sandbox Code Playgroud)

要么:

{"password_hash":"2lmoth8l4H0DViLaK9Fxi6l9ds8=", "tags":"administrator"}
Run Code Online (Sandbox Code Playgroud)

标签键是必需的.无论是passwordpassword_hash必须设置.

到目前为止,这么好,问题是:如何正确生成password_hash

密码散列算法被配置在RabbitMQ的配置文件,我们的配置为默认SHA256.

我正在使用C#,以下代码生成哈希:

var cr = new SHA256Managed();
var simplestPassword = "1";
var bytes = cr.ComputeHash(Encoding.UTF8.GetBytes(simplestPassword));
var sb = new StringBuilder();
foreach (var b in bytes) sb.Append(b.ToString("x2"));
var hash = sb.ToString();
Run Code Online (Sandbox Code Playgroud)

这不起作用.在一些用于SHA256加密的在线工具中进行测试,代码产生了预期的输出.但是,如果我们转到管理页面并手动将用户密码设置为"1",那么它就像魅力一样.

这个答案让我导出配置并看看RabbitMQ正在生成的哈希值,我意识到了一些事情:

  • 哈希示例"1":"y4xPTRVfzXg68sz9ALqeQzARam3CwnGo53xS752cDV5 + Utzh"
  • 所有用户的哈希都有固定长度
  • 哈希每次都会改变(即使密码相同).我知道PB2K也会对密码执行此操作,但不知道此加密属性的名称.
  • 如果我通过password_hashRabbitMQ存储它没有更改

我也接受其他编程语言的建议,而不仅仅是C#.

c# rabbitmq rabbitmqadmin

11
推荐指数
7
解决办法
5314
查看次数

在运行Rabbitmq的Docker容器上远程创建虚拟主机

我有一个Vagrantfile,它做2件重要的事情;首先拉并运行dockerfile / rabbitmq,然后从运行应用程序的自定义Dockerfile构建,该应用程序在Rabbitmq服务器上假设一个虚拟主机,比方说“ / foo”。

问题是虚拟主机不存在。

包含rabbitmq的容器正在成功运行,并且在运行生成的映像时,使用--link将应用程序链接到该应用。使用环境变量泊坞窗集,我可以访问服务器。但是在这些操作的中间,我需要创建虚拟主机,因为我的连接被拒绝,我认为是因为“ / foo”不存在。

如何将虚拟主机安装到Rabbit服务器上?

谢谢

注意-不能使用webadmin,这必须以编程方式完成。

rabbitmq docker vagrantfile

1
推荐指数
1
解决办法
2653
查看次数

标签 统计

rabbitmq ×3

docker ×2

c# ×1

rabbitmqadmin ×1

vagrantfile ×1