当前位置: 首页 > news >正文

195、SpringBoot--配置RabbitMQ消息Broker的SSL 和 管理控制台的HTTPS

开启Rabbitmq的一些命令:
小黑窗输入:
rabbitmq-plugins enable rabbitmq_management 启动控制台插件,就是启动登录rabbitmq控制台的页面
rabbitmq_management 代表了RabbitMQ的管理界面。

rabbitmq-server 启动rabbitMQ服务器

在这里插入图片描述
上面这个:rabbitmq-plugins enable rabbitmq_management 启动控制台插件,就是启动登录rabbitmq控制台的页面,就是为了打开这个:
启动浏览器访问 http://localhost:15672/ 将看到登录界面
在这里插入图片描述

管理员启动小黑窗:
rabbitmq-service install 添加rabbitMQ为本地服务
用来添加这个
在这里插入图片描述

其他命令:
查看监听端口:rabbitmq-diagnostics listeners
查看节点信息命令:rabbitmq-diagnostics status --node rabbit@JHComputer
在这里插入图片描述
在这里插入图片描述

★ RabbitMQ的配置文件

▲ 保存位置Linux及类似系统中配置文件位于/etc/rabbitmq/目录下
Windows系统中配置文件位于%APPDATA%\RabbitMQ\下(C:\Users\JH\AppData\Roaming\RabbitMQ)▲ 3个配置文件:
- rabbitmq.conf:新式格式(类似application.properties风格)的配置文件。- advanced.config:经典格式(JSON风格)的配置文件。只有极少数rabbitmq.conf 不支持的配置(如LDAP)才需要使用该配置文件- rabbitmq-env.conf (Windows用rabbitmq-env.conf.bat):用于集中管理RabbitMQ所需的环境变量。具体可参考https://www.rabbitmq.com/configure.html#config-location页面

在这里插入图片描述

★ 配置RabbitMQ的端口

在rabbitmq.conf文件中增加如下配置(5672是默认值) :
listeners.tcp.default = 5673
▲ 配置完成后,可通过Web管理界面的Overview→Nodes→rabbit@pc名查看节点信息。▲ 也可通过如下命令查看节点信息
rabbitmq-diagnostics status --node rabbit@JHComputer▲ 或通过如下命令查看监听端口:
rabbitmq-diagnostics listeners

演示:

在这里创建这个配置文件,在启动RabbitMQ的时候,就会自动加载这个配置文件
在这里插入图片描述
启动RabbitMQ,可以看出自己添加的配置文件被加载了
在这里插入图片描述
在这里插入图片描述

配置完成后,可通过Web管理界面的Overview→Nodes→rabbit@pc名查看节点信息。
这个rabbit@pc名 就是 rabbit@JHComputer,如图

在这里插入图片描述

▲ 也可通过如下命令查看节点信息
rabbitmq-diagnostics status --node rabbit@JHComputer
再开启一个小黑窗输入这个命令
监听端口成功变成我们自己定义的 5763
这个能看这个节点的所有信息
在这里插入图片描述

▲ 或通过如下命令查看监听端口:
rabbitmq-diagnostics listeners
这个命令只单独看端口
在这里插入图片描述

什么是SSL?

SSL证书是数字证书的一种,也称SSL服务器证书。
在这里插入图片描述

★ 启用消息Broker的SSL

SSL: Secure Sockets Layer,安全套接字层
要启用消息Broker的SSL,需要证书。

▲ 启用消息Broker的SSL需要两步:
(1)获得证书。使用自签名证书或购买权威机构颁发的证书。
(2)设置证书。具体可参考https://www.rabbitmq.com/ssl.html#enabling-tls

证书没买的话,就自己生成一个自签名证书,但是安全性低,没啥用,仅作为演示。

★ 生成自签名证书

RabbitMQ提供了一个小工具来生成证书。直接运行该工具包来生成证书即可。▲ 执行如下命令clone工具包:
git clone https://github.com/michaelklishin/tls-gen tls-gen
该命令执行完成后,会在当前目录下多出一个tls-gen目录,该目录下就保存了额RabbitMQ所提供的证书工具。▲ 修改tls-gen目录下的common.mk文件,将其中PYTHON := 的值改为Python3命令的绝对路径。——你的电脑上必须安装Python 3。这暗示了:该工具需要有Python环境。▲ 进入tls-gen\basic目录下,执行如下命令(需要msys2工具)来生成证书(其中123456用于指定私钥密码):make PASSWORD=123456▲ 证书生成完成后,会在basic目录下生成result、testca、server和client四个文件夹。▲ 关键就是result目录下的几个文件:- result/ca_certificate.pem:CA的证书。
- result/server_certificate.pem:服务器端用的证书
- result/server_key.pem:服务器端所用key文件
- result/client_key.p12:客户端信任该证书所需要的密钥文件,供Java客户端使用。

生成自签名证书的演示

用这个命令需要已经安装有git
▲ 执行如下命令clone工具包:
git clone https://github.com/michaelklishin/tls-gen tls-gen
在这里插入图片描述
该命令执行完成后,会在当前目录下多出一个tls-gen目录,该目录下就保存了额RabbitMQ所提供的证书工具。
在这里插入图片描述

▲ 修改tls-gen目录下的common.mk文件,将其中PYTHON := 的值改为Python3命令的绝对路径。
——你的电脑上必须安装Python 3。这暗示了:该工具需要有Python环境。

因此,再安装一个python3.8版本
python3.8下载及安装

在这里插入图片描述

▲ 进入tls-gen\basic目录下,执行如下命令(需要msys2工具)来生成证书
(其中123456用于指定私钥密码): make PASSWORD=123456
安装msys2

证书生成完成后,会在basic目录下生成result、testca、server和client四个文件夹。

打开msys2软件,输入如图命令,生成完就可以退出了
在这里插入图片描述

▲ 关键就是result目录下的几个文件:

- result/ca_certificate.pem:CA的证书。
- result/server_certificate.pem:服务器端用的证书
- result/server_key.pem:服务器端所用key文件
- result/client_key.p12:客户端信任该证书所需要的密钥文件,供Java客户端使用。

在这里插入图片描述
在这里插入图片描述

★ 配置消息Broker的SSL证书

在这里插入图片描述

▲ 在rabbitmq.conf文件中增加如下配置:

如果要禁用非SSL的监听:添加如下配置:
listeners.tcp = none

配置非SSL的监听端口。
listeners.tcp.default = 5672

配置SSL的端口
listeners.ssl.default = 5673

ssl_options.cacertfile = CA证书的路径
ssl_options.certfile = 服务器端证书的路径
ssl_options.keyfile = 服务器端key的路径

ssl_options.verify = verify_peer
verify_none表示忽略证书验证,verify_peer表示要求验证对方证书

ssl_options.fail_if_no_peer_cert = true
若为true,服务器端会向客户端索要证书,若客户端无证书则中止SSL握手;
若为false,则客户端没有证书时依然可完成SSL握手

rabbitmq官网参考
在这里插入图片描述
对这个rabbitmq.conf文件进行配置
在这里插入图片描述

查看监听端口:rabbitmq-diagnostics listeners
表示配置消息Broker的SSL成功
在这里插入图片描述

★ 配置管理界面(rabbitmq_management插件)的HTTPS

没配置之前,这里是http,不安全。
现在要弄成 https 。
在这里插入图片描述

http 本身是一个应用层的协议,SSL 是一个网络安全传输层,
基于网络安全传输层 的 http 就变成了所谓的 https

▲ 在rabbitmq.conf文件中增加如下配置(所有management相关的配置都用于配置rabbitmq_management插件):
rabbitmq_management: 代表了RabbitMQ的管理界面。

management.tcp.port = 15672

management.ssl.port = 15673
management.ssl.cacertfile = CA证书的路径
management.ssl.certfile = 服务器端证书的路径
management.ssl.keyfile =服务器端key的路径
management.ssl.verify = verify_none
management.ssl.fail_if_no_peer_cert = false

▲ 具体可参考https://www.rabbitmq.com/management.html#multiple-listeners
在这里插入图片描述

在这里插入图片描述

如图:两条相同的查看监听端口:rabbitmq-diagnostics listeners。
没标注颜色解释的是配置之前的,标注颜色解释的是配置的之后的,演示区别:
在这里插入图片描述

因为 RabbitMQ 的管理界面的服务端口,默认是15672,
所以把上面的15677 改成 15672 。与默认的保持一致最好。

在这里插入图片描述
重启rabbitmq服务,再重新查监听端口:rabbitmq-diagnostics listeners。
在这里插入图片描述

▲ 若使用自签名的证书,所有浏览器都无法访问该HTTPS服务,因此这些浏览器都不信任该自签名证书。

原本的http访问
在这里插入图片描述

使用 https 来访问。

如图:因为配置 https 是用了自己生成的ssl的自签名证书,安全性低,浏览器不信任,不给访问。
如果用买的有权威的签名证书才可以访问。,仅作为演示如何设置证书。
在这里插入图片描述

rabbitmq.conf

在c盘
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

# 配置 RabbitMQ 的监听端口,默认5672
listeners.tcp.default = 5672#  消息broker的SSL 的相关配置
#  配置 SSL 的端口
listeners.ssl.default = 5673# 配置 CA证书的路径
ssl_options.cacertfile = E:\install\RabbitMQ\rabbitmq-3.9.4\tls-gen\basic\result\ca_certificate.pem# 配置 服务器端证书的路径
ssl_options.certfile   = E:\install\RabbitMQ\rabbitmq-3.9.4\tls-gen\basic\result\server_JHComputer_certificate.pem# 配置 服务器端key的路径,就是私钥证书的位置
ssl_options.keyfile    = E:\install\RabbitMQ\rabbitmq-3.9.4\tls-gen\basic\result\server_JHComputer_key.pem# 是否要对客户端的证书进行验证
# verify_none表示忽略证书验证,verify_peer表示要求验证对方证书
ssl_options.verify     = verify_peer# 客户端验证失败的时候是否直接停止
#  若为true,服务器端会向客户端索要证书,若客户端无证书则中止SSL握手;
#  若为false,则客户端没有证书时依然可完成SSL握手,就是证书即使验证失败,也依然提供服务
ssl_options.fail_if_no_peer_cert = true# 配置 RabbitMQ 的管理界面的服务端口,默认15672management.tcp.port = 15672# 配置 HTTPS 的端口 
management.ssl.port  = 15673# 配置 CA证书的路径
management.ssl.cacertfile = E:\install\RabbitMQ\rabbitmq-3.9.4\tls-gen\basic\result\ca_certificate.pem# 配置 服务器端证书的路径
management.ssl.certfile   = E:\install\RabbitMQ\rabbitmq-3.9.4\tls-gen\basic\result\server_JHComputer_certificate.pem# 配置 服务器端key的路径,就是私钥证书的位置
management.ssl.keyfile    = E:\install\RabbitMQ\rabbitmq-3.9.4\tls-gen\basic\result\server_JHComputer_key.pem# 是否要对客户端的证书进行验证
# verify_none表示忽略证书验证,verify_peer表示要求验证对方证书
management.ssl.verify = verify_none#  客户端验证失败的时候是否直接停止
#  若为true,服务器端会向客户端索要证书,若客户端无证书则中止SSL握手;
#  若为false,则客户端没有证书时依然可完成SSL握手,就是证书即使验证失败,也依然提供服务
management.ssl.fail_if_no_peer_cert = false

相关文章:

195、SpringBoot--配置RabbitMQ消息Broker的SSL 和 管理控制台的HTTPS

开启Rabbitmq的一些命令: 小黑窗输入: rabbitmq-plugins enable rabbitmq_management 启动控制台插件,就是启动登录rabbitmq控制台的页面 rabbitmq_management 代表了RabbitMQ的管理界面。 rabbitmq-server 启动rabbitMQ服务器 上面这个&…...

确定性执行

确定性执行是指在给定输入的情况下,在有限的时间内产生一致的输出。 也就是输入到输出的运行过程是确定的,输入与输出有如下关系: 输出 = f (输入)。 确定性执行主要涉及以下几个方面: 时间确定性:计算的输出始终在给定的某个时间点之前发生,即程序不能无限制地运行下去…...

docker compose 管理应用服务的常用命令

一 、docker compose 是什么 Docker Compose是一个用来管理多个关联容器的工具,可以根据配置文件自动构建、管理、编排一组容器。 Docker Compose语境下的“服务”是指一组容器共同构成的一个应用服务后端。 Docker Compose语境下的“项目”是由一个或多个应用服务…...

产品安全—CC标准 ISO/IEC 15408:2022

文章目录 1. 变化2. Part1 简介和一般模型3. Part2 安全功能组件4. Part3 安全保障组件5. Part4 评估方法和活动规范框架6. Part5 预定义的安全要求包7. 总结 1. 变化 增加了两个部分:评估方法和活动规范框架 & 预定义的安全要求包 术语已经过审查和更新&#…...

Pytorch笔记之回归

文章目录 前言一、导入库二、数据处理三、构建模型四、迭代训练五、结果预测总结 前言 以线性回归为例,记录Pytorch的基本使用方法。 一、导入库 import numpy as np import matplotlib.pyplot as plt import torch from torch.autograd import Variable # 定义求…...

哪个证券公司可以加杠杆,淘配网是您的杠杆综合网站!

在证券市场中,投资者经常寻求提高资金杠杆以获得更高的回报。杠杆交易可以让您在不必拥有等额本金的情况下,参与更多的交易活动。然而,为了进行杠杆交易,您需要找到一家证券公司或平台,可以为您提供这种服务。本文将介…...

万字解读|怎样激活 TDengine 最高性价比?

不知不觉间,TDengine 已经 6 岁多了。在这 6 年多的时间里,我们从零开始,在一行又一行代码的淬炼下,TDengine 从 1.6 走过 2.0,终于走到如今的 3.0 时代。 自 2022 年下旬发布以来,经过我们不断地打磨优化…...

【目标检测】大图包括标签切分,并转换成txt格式

前言 遥感图像比较大,通常需要切分成小块再进行训练,之前写过一篇关于大图裁切和拼接的文章【目标检测】图像裁剪/标签可视化/图像拼接处理脚本,不过当时的工作流是先将大图切分成小图,再在小图上进行标注,于是就不考…...

gitlab登录出现的Invalid login or password问题

前提 我是在一个项目里创建的gitlab账号,想在别的项目里登录或者官网登录发现怎么都登陆不上 原因 在GitLab中,有两种不同的账号类型:项目账号和个人账号(官网账号)。 项目账号:项目账号是在特定GitLab…...

git本地创建分支并推送到远程

1. 创建本地分支并切换到该分支 比如我创建dev分支。git checkout -b相当于把两条命令git branch 分支名、git checkout分支名合成一条,来实现一条命令新建分支切换分支。 git checkout -b dev 2. 将dev分支推送到远程 -u参数与--set-upstream这一串是一个意思&am…...

手机待办事项app哪个好?

手机是日常很多人随身携带的设备,手机除了拥有通讯功能外,还能帮助大家高效管理日常工作,借助手机上的待办事项提醒APP可以快速地帮助大家规划日常事务,提高工作的效率。 过去,我也曾经在寻找一款能够将工作任务清晰罗…...

容器运行elasticsearch安装ik分词非root权限安装报错问题

有些应用默认不允许root用户运行,来确保应用的安全性,这也会导致我们使用docker run后一些操作问题,用es安装ik分词器举例(es版本8.9.0,analysis-ik版本8.9.0) 1. 容器启动elasticsearch 如挂载方式&…...

UE4游戏客户端开发进阶学习指南

前言 两年多前写过一篇入门指南,教大家在短时间内快速入门UE4的使用,在知乎被很多人收藏了。如今鸡佬使用UE快三年了,是时候更新一下进阶版本的学习指南。本文对于读者的要求: 有一定的C基础已经入门UE,能够用蓝图和…...

javaee SpringMVC 乱码问题解决

方法一 在web.xml文件中注册过滤器 <!-- 注册过滤器 设置编码 --><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param&…...

用ChatGPT做数据分析,提升10倍工作效率

目录 写报告分析框架报告框架指标体系设计 Excel 写报告 分析框架 拿到一个专题不知道怎么做&#xff1f;没关系&#xff0c;用ChatGPT列一下框架。 以上分析框架挺像那么回事&#xff0c;如果没思路的话&#xff0c;问问ChatGPT能起到找灵感的作用。 报告框架 报告的框架…...

【Pytorch笔记】4.梯度计算

深度之眼官方账号 - 01-04-mp4-计算图与动态图机制 前置知识&#xff1a;计算图 可以参考我的笔记&#xff1a; 【学习笔记】计算机视觉与深度学习(2.全连接神经网络) 计算图 以这棵计算图为例。这个计算图中&#xff0c;叶子节点为x和w。 import torchw torch.tensor([1.]…...

浏览器安装vue调试工具

下载扩展程序文件 下载链接&#xff1a;链接: 下载连接网盘地址&#xff0c; 提取码: 0u46&#xff0c;里面有两个crx,一个适用于vue2&#xff0c;一个适用于vue3&#xff0c;可根据vue版本选择不同的调试工具 crx安装扩展程序不成功&#xff0c;将文件改为rar文件然后解压 安装…...

C/C++学习 -- RSA算法

概述 RSA算法是一种广泛应用于数据加密与解密的非对称加密算法。它由三位数学家&#xff08;Rivest、Shamir和Adleman&#xff09;在1977年提出&#xff0c;因此得名。RSA算法的核心原理是基于大素数的数学问题的难解性&#xff0c;利用两个密钥来完成加密和解密操作。 特点 …...

基于若依ruoyi-nbcio支持flowable流程增加自定义业务表单(一)

因为需要支持自定义业务表单的相关流程&#xff0c;所以需要建立相应的关联表 1、首先先建表wf_custom_form -- ---------------------------- -- Table structure for wf_custom_form -- ---------------------------- DROP TABLE IF EXISTS wf_custom_form; CREATE TABLE wf…...

面试经典 150 题 1 —(数组 / 字符串)— 88. 合并两个有序数组

88. 合并两个有序数组 方法一&#xff1a; class Solution { public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {for(int i 0; i<n;i){nums1[mi] nums2[i];}sort(nums1.begin(),nums1.end());} };方法二&#xff1a; clas…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...