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

RABBITMQ的本地测试证书生成脚本

由于小程序要求必须访问wss的接口,因此需要将测试环境也切换到https,看了下官方的文档

RabbitMQ Web STOMP Plugin | RabbitMQ里面有这个信息

然后敲打GPT一阵子,把要求输入几个来回,得到这样一个脚本:

generate_cert.sh

#!/bin/bash# 检查是否提供了IP地址
if [ "$#" -ne 1 ]; thenecho "Usage: $0 <IP_ADDRESS>"exit 1
fiIP_ADDRESS=$1
PASSWORD="changeme"# 创建必要的目录
mkdir -p certs# 生成 CA 密钥
openssl genrsa -des3 -passout pass:$PASSWORD -out certs/ca.key 2048# 生成 CA 证书
openssl req -x509 -new -nodes -key certs/ca.key -sha256 -days 1024 -passin pass:$PASSWORD -out certs/ca_certificate.pem -subj "/CN=${IP_ADDRESS}"# 生成服务器密钥
openssl genrsa -des3 -passout pass:$PASSWORD -out certs/server.key 2048# 生成服务器证书签名请求(CSR)
openssl req -new -key certs/server.key -passin pass:$PASSWORD -out certs/server.csr -subj "/CN=${IP_ADDRESS}"# 创建一个配置文件用于扩展
cat <<EOF > certs/openssl.cnf
[ v3_ca ]
basicConstraints = CA:TRUE[ v3_req ]
basicConstraints = CA:FALSE
subjectAltName = @alt_names[ alt_names ]
IP.1 = ${IP_ADDRESS}
EOF# 使用 CA 证书签署服务器证书
openssl x509 -req -in certs/server.csr -CA certs/ca_certificate.pem -CAkey certs/ca.key -CAcreateserial -out certs/server_certificate.pem -days 500 -sha256 -passin pass:$PASSWORD -extfile certs/openssl.cnf -extensions v3_req# 转换服务器密钥为 PEM 格式
openssl rsa -in certs/server.key -out certs/server_key.pem -passin pass:$PASSWORD -passout pass:$PASSWORD# 打印完成信息
echo "Certificates and keys generated successfully in the 'certs' directory."
echo "CA Certificate: certs/ca_certificate.pem"
echo "Server Certificate: certs/server_certificate.pem"
echo "Server Key: certs/server_key.pem"

在WSL的ubuntu里使用
generate_cert.sh <测试IP> 来生成

然后在RabbitMQ服务器的log/db同级目录下建立rabbitmq.conf

第一个张图片内容贴进去,然后重启rabbitMQ服务,再看管理界面,https的端口15673成功起来了
 

相关文章:

RABBITMQ的本地测试证书生成脚本

由于小程序要求必须访问wss的接口&#xff0c;因此需要将测试环境也切换到https&#xff0c;看了下官方的文档 RabbitMQ Web STOMP Plugin | RabbitMQ里面有这个信息 然后敲打GPT一阵子&#xff0c;把要求输入几个来回&#xff0c;得到这样一个脚本&#xff1a; generate_cer…...

记录些Redis题集(4)

Redis 通讯协议(RESP) Redis 通讯协议&#xff08;Redis Serialization Protocol&#xff0c;RESP&#xff09;是 Redis 服务端与客户端之间进行通信的协议。它是一种二进制安全的文本协议&#xff0c;设计简洁且易于实现。RESP 主要用于支持客户端和服务器之间的请求响应交互…...

JVM:垃圾回收器

文章目录 一、介绍二、年轻代-Serial垃圾回收器三、老年代-SerialOld垃圾回收器四、年轻代-ParNew垃圾回收器五、老年代-CMS&#xff08;Concurrent Mark Sweep&#xff09;垃圾回收器六、年轻代-Parllel Scavenge垃圾回收器七、Parallel Old垃圾回收器八、G1垃圾回收器 一、介…...

Golang | Leetcode Golang题解之第228题汇总区间

题目&#xff1a; 题解&#xff1a; func summaryRanges(nums []int) (ans []string) {for i, n : 0, len(nums); i < n; {left : ifor i; i < n && nums[i-1]1 nums[i]; i {}s : strconv.Itoa(nums[left])if left < i-1 {s "->" strconv.It…...

单目3D和bev综述

文章目录 SOTA2D 检测单目3d检测3d bev cam范式1 Transformer attention is all you need 20172 ViT vision transformer ICLR 2021google3 swin transformer 2021 ICCV bestpaper MS4 DETR 20205 DETR3D 20216 PETR 20227 bevformerLSSbevdetcaddn指标 mAP NDS标注&#xff1a…...

每日Attention学习11——Lightweight Dilated Bottleneck

模块出处 [TITS 23] [link] [code] Lightweight Real-Time Semantic Segmentation Network With Efficient Transformer and CNN 模块名称 Lightweight Dilated Bottleneck (LDB) 模块作用 改进的编码器块 模块结构 模块代码 import torch import torch.nn as nn import to…...

EM32DX-E4 IO 扩展模块

输入&#xff1a;0x6000-01 // 输入 0-15 6020H——00H IN0 计数【0~7】 ——01H IN0_SetCountMode S32 r/w 初始值默认为 0 设置 IN0 的计数方式&#xff1a;0 电平下 降沿&#xff0c;1 电平上升沿&#xff0c; 2 电平任意沿 ——02H IN0_Set…...

【数据结构与算法】选择排序篇----详解直接插入排序和哈希排序【图文讲解】

欢迎来到CILMY23的博客 &#x1f3c6;本篇主题为&#xff1a;【数据结构与算法】选择排序篇----详解直接插入排序和哈希排序 &#x1f3c6;个人主页&#xff1a;CILMY23-CSDN博客 &#x1f3c6;系列专栏&#xff1a;Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux…...

SpringBoot实战:多表联查

1. 保存和更新公寓信息 请求数据的结构 Schema(description "公寓信息") Data public class ApartmentSubmitVo extends ApartmentInfo {Schema(description"公寓配套id")private List<Long> facilityInfoIds;Schema(description"公寓标签i…...

解决mysql,Navicat for MySQL,IntelliJ IDEA之间中文乱码

使用软件版本 jdk-8u171-windows-x64 ideaIU-2021.1.3 mysql-essential-5.0.87-win32 navicat8_mysql_cs 这个问题我调试了好久&#xff0c;网上的方法基本上都试过了&#xff0c;终于是解决了。 三个地方结果都不一样。 方法一 首先大家可以尝试下面这种方法&#xff1a…...

虚拟环境操作

1、对虚拟环境的操作 查看虚拟环境列表 conda env list 创建虚拟环境 conda create -n 虚拟环境名称 python3.x 激活虚拟环境 conda activate 虚拟环境名称 退出虚拟环境 conda deactivate 删除虚拟环境 conda remove -n 虚拟环境名称 all 2、对虚拟环境下的包的操作…...

企业网三层架构

企业网三层架构&#xff1a;是一种层次化模型设计&#xff0c;旨在将复杂的网络设计分成三个层次&#xff0c;每个层次都着重于某些特定的功能&#xff0c;以提高效率和稳定性。 企业网三层架构层次&#xff1a; 接入层&#xff1a;使终端设备接入到网络中来&#xff0c;提供…...

node.js的安装及学习(node/nvm/npm的区别)

一、什么是node、nvm和npm 1.Node.js node.js 一种Javascript编程语言的运行环境&#xff0c;能够使得javascript能够脱离浏览器运行。以前js只能在浏览器&#xff08;也就是客户端&#xff09;上运行&#xff0c;node.js将浏览器中的javascript运行环境进行封装的&#xff0c;…...

性能优化篇:用WebSocket替代传统的http轮循

当我还是初级菜鸟时,我只会写定时器定时调用接口,发起http请求,定时轮训请求接口,返回最新数据,定时器开启的多了还会引起页面卡顿的性能问题,虽然及时销了但还是会影响流畅问题。然后技术leader一声令下说改成websoket的请求方式,为什么这么做呢?下面来谈谈WebSocket相…...

virtualbox的ubuntu默认ipv4地址为10.0.2.15的修改以及xshell和xftp的连接

virtualbox安装Ubuntu后&#xff0c;默认的地址为10.0.2.15 我们查看virtualbox的设置发现是NAT 学过计算机网络的应该了解NAT技术&#xff0c;为了安全以及缓解ip使用&#xff0c;我们留了部分私有ip地址。 私有IP地址网段如下&#xff1a; A类&#xff1a;1个A类网段&…...

Codeforces Round 957 (Div. 3)(A~D题)

A. Only Pluses 思路: 优先增加最小的数&#xff0c;它们的乘积会是最优,假如只有两个数a和b&#xff0c;b>a&#xff0c;那么a 1&#xff0c;就增加一份b。如果b 1&#xff0c;只能增加1份a。因为 b > a&#xff0c;所以增加小的数是最优的。 代码: #include<bi…...

fedora 40 安装拼音输入法

仅做参考&#xff0c;一般主流linux版本在安装完成后&#xff0c;都会自带中文输入法。而需要配置中文输入法的小众发行版往往软件仓库自带的依赖不全。 1,sudo dnf install ibus 2,sudo dnf install im-chooser 3,sudo dnf install ibus-libpinyin 4,在终端输入im-choose…...

Chromium CI/CD 之Jenkins实用指南2024-如何创建新节点(三)

1. 前言 在前一篇《Jenkins实用指南2024-系统基本配置&#xff08;二&#xff09;》中&#xff0c;我们详细介绍了如何对Jenkins进行基本配置&#xff0c;包括系统设置、安全配置、插件管理以及创建第一个Job。通过这些配置&#xff0c;您的Jenkins环境已经具备了基本的功能和…...

Git代码管理工具 — 3 Git基本操作指令详解

目录 1 获取本地仓库 2 基础操作指令 2.1 基础操作指令框架 2.2 git status查看修改的状态 2.3 git add添加工作区到暂存区 2.4 提交暂存区到本地仓库 2.5 git log查看提交日志 2.6 git reflog查看已经删除的记录 2.7 git reset版本回退 2.8 添加文件至忽略列表 1 获…...

Linux——多线程(五)

1.线程池 1.1初期框架 thread.hpp #include<iostream> #include <string> #include <unistd.h> #include <functional> #include <pthread.h>namespace ThreadModule {using func_t std::function<void()>;class Thread{public:void E…...

【行业首发】Midjourney v6.2水动力学渲染白皮书:基于流体物理模型的prompt工程重构(附NASA水波频谱对照表)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;【行业首发】Midjourney v6.2水动力学渲染白皮书&#xff1a;基于流体物理模型的prompt工程重构&#xff08;附NASA水波频谱对照表&#xff09; Midjourney v6.2首次引入隐式流体物理引擎&#xff08;Implici…...

30岁之后IT人士(程序员)的职业规划是什么呢?

前段也看到ibm的寇卫东的一篇文章关于职业规划的&#xff0c;现在看看&#xff0c;这些职业规划都是理想状态下的产物&#xff0c;很多时候&#xff0c;限于我们自身水平、时间、空间的影响&#xff0c;很多是看着很美&#xff0c;其实却远远的达不到&#xff0c;不能仅仅说让人…...

华为员工职业发展手册

导读&#xff1a;这份华为员工职业发展手册&#xff0c;围绕员工入职、成长、晋升与激励构建了完整的职业发展体系&#xff0c;核心是明确企业、管理者与员工三方责任&#xff0c;搭建多元发展通道&#xff0c;助力员工与企业共成长。关注公众号&#xff1a;【互联互通社区】&a…...

别再只会用`docker system prune`了!聊聊Docker磁盘清理的5个隐藏场景与实战命令

别再只会用docker system prune了&#xff01;聊聊Docker磁盘清理的5个隐藏场景与实战命令 Docker作为现代开发与运维的核心工具&#xff0c;其便捷性背后往往隐藏着磁盘管理的复杂性。当docker system prune成为大多数人的清理"万能药"时&#xff0c;真正棘手的磁盘…...

RV1126B开发板GPIO实战:libgpiod驱动与安全操作指南

1. 项目概述与核心思路 最近在折腾一块基于瑞芯微RV1126B芯片的EASY-EAI开发板&#xff0c;项目里需要用到几个GPIO口来控制外部继电器和读取传感器状态。虽然官方文档和网上资料不少&#xff0c;但真上手时发现&#xff0c;关于如何在这块板子上正确、安全地操作GPIO&#xff…...

终极指南:如何通过WeChatIntercept插件彻底解决Mac微信消息撤回问题

终极指南&#xff1a;如何通过WeChatIntercept插件彻底解决Mac微信消息撤回问题 【免费下载链接】WeChatIntercept 微信防撤回插件&#xff0c;一键安装&#xff0c;仅MAC可用&#xff0c;支持v3.7.0微信 项目地址: https://gitcode.com/gh_mirrors/we/WeChatIntercept …...

Super IO:Blender批量导入导出终极指南,工作效率提升300%

Super IO&#xff1a;Blender批量导入导出终极指南&#xff0c;工作效率提升300% 【免费下载链接】super_io blender addon for copy paste import / export 项目地址: https://gitcode.com/gh_mirrors/su/super_io Super IO是一款革命性的Blender插件&#xff0c;它通过…...

10分钟掌握BodyApps 3D Body Visualiser高级技巧:自定义皮肤、视角控制与参数联动

10分钟掌握BodyApps 3D Body Visualiser高级技巧&#xff1a;自定义皮肤、视角控制与参数联动 【免费下载链接】bodyapps-viz 3D body visualizer component for #bodyapps project 项目地址: https://gitcode.com/gh_mirrors/bo/bodyapps-viz BodyApps 3D Body Visuali…...

Python数据分析入门 - BV1xX4y1Z7Y8

Python数据分析入门 - BV1xX4y1Z7Y8 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools 本视频主要介绍Python数据分析的…...

5步解锁Total War模组制作:用RPFM编辑器从新手到专家的完整指南

5步解锁Total War模组制作&#xff1a;用RPFM编辑器从新手到专家的完整指南 【免费下载链接】rpfm Rusted PackFile Manager (RPFM) is a... reimplementation in Rust and Qt6 of PackFile Manager (PFM), one of the best modding tools for Total War Games. 项目地址: ht…...