首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RabbitMQ管理用户界面ssl密钥文件无效

RabbitMQ管理用户界面ssl密钥文件无效
EN

Stack Overflow用户
提问于 2019-12-21 12:48:13
回答 1查看 1.2K关注 0票数 5

您好,我正在使用Let's Encrypt为我部署在Azure VM中的Dockerized RabbitMQ生成SSL证书。在使用certbot生成证书后,我在一个名为certs的文件夹中获得了cert.pemchain.pemfullchain.pemprivkey.pem

之后,我编写了一个Dockerfile Dockerfile,以基于现有的RabbitMQ docker镜像构建docker镜像,如下所示

代码语言:javascript
运行
复制
FROM rabbitmq:3.8-management-alpine
RUN rabbitmq-plugins enable rabbitmq_web_stomp
COPY rabbitmq.conf /etc/rabbitmq/rabbitmq.conf
VOLUME ["/home/rabbitmq/certs"]

另外,我的rabbitmq.conf

代码语言:javascript
运行
复制
loopback_users.guest = false
listeners.tcp.default = 5672
default_pass = rabbitmq_admin
default_user = rabbitmq_admin
management.tcp.port = 15672
management.ssl.port       = 15671
management.ssl.cacertfile = /home/rabbitmq/certs/chain.pem
management.ssl.certfile   = /home/rabbitmq/certs/cert.pem
management.ssl.keyfile    = /home/rabbitmq/certs/privkey.pem

然后,我使用以下命令构建rabbitmq docker映像

docker build -t rabbitmq:3.8-ssl .

要运行映像,我使用docker组合文件,如下所示

代码语言:javascript
运行
复制
version: '3'
services:
  rabbitmq:
    image: rabbitmq:3.8-ssl
    container_name: rabbitmq
    volumes:
       - ./certs:/home/rabbitmq/certs
    deploy:
      resources:
        limits:
          cpus: '0.30'
          memory: 300M
    ports:
      - 4369:4369
      - 5671:5671
      - 5672:5672
      - 15671:15671
      - 15672:15672
      - 15673:15673
      - 15674:15674
      - 25672:25672
    hostname: rabbitmq
    environment:
      - RABBITMQ_DEFAULT_USER=rabbitmq_admin
      - RABBITMQ_DEFAULT_PASS=rabbitmq_admin

但是,当我运行

docker-compose up

我得到了

代码语言:javascript
运行
复制
Recreating rabbitmq ... done
Attaching to rabbitmq
rabbitmq      |
rabbitmq      | BOOT FAILED
rabbitmq      | ===========
rabbitmq      |
rabbitmq      | Config file generation failed:
rabbitmq      | 23:02:13.719 [error] management.ssl.keyfile invalid, file doesn/t exist or isn't     readable
rabbitmq      | 23:02:13.728 [error] Error generating configuration in phase validation
rabbitmq      | 23:02:13.728 [error] management.ssl.keyfile invalid, file doesn/t exist or isn't     readable
rabbitmq      | In case the setting comes from a plugin, make sure that the plugin is enabled.
rabbitmq      | Alternatively remove the setting from the config.
rabbitmq      |
rabbitmq      | {"init terminating in do_boot",generate_config_file}
rabbitmq      | init terminating in do_boot (generate_config_file)
rabbitmq      |
rabbitmq      | Crash dump is being written to: /var/log/rabbitmq/erl_crash.dump...done
rabbitmq exited with code 0

如果证书有问题,我使用相同的证书(cert.pemprivkey.pem,似乎nginx不需要chain.pem)部署了一个nginx web服务器,它运行得很好。我可以从chrome中看到证书是有效的。

有没有人能帮我看看可能出了什么问题?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-02-13 04:58:13

我今天遇到了这个问题。最终结果就是错误所说的,rabbitmq由于权限而无法查看证书。可以通过运行以下命令进行测试

代码语言:javascript
运行
复制
sudo su -l rabbitmq -s /bin/bash

然后尝试查看证书。

代码语言:javascript
运行
复制
rabbitmq@ip-10-0-0-22:~$ cat /etc/letsencrypt/live/www.example.com/fullchain.pem
cat: /etc/letsencrypt/live/www.example.com/fullchain.pem: Permission denied

如果你查看这个文件,你会发现它是符号链接到存档文件夹的,所以仅仅设置'live‘的权限是不够的。

为了解决这个问题,我运行了两个命令将目录设置为可读。

代码语言:javascript
运行
复制
chmod ugo+rx /etc/letsencrypt/live/
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59433582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档