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

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

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

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

generate_cert.sh

#!/bin/bash

# 检查是否提供了IP地址
if [ "$#" -ne 1 ]; then
    echo "Usage: $0 <IP_ADDRESS>"
    exit 1
fi

IP_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成功起来了
 

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 07:26:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 07:26:04       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 07:26:04       58 阅读
  4. Python语言-面向对象

    2024-07-12 07:26:04       69 阅读

热门阅读

  1. flutter常用库的介绍(1)

    2024-07-12 07:26:04       32 阅读
  2. 用Python和TensorFlow实现图像分类:从零开始

    2024-07-12 07:26:04       29 阅读
  3. 鸿蒙开发工程师面试题-架构篇

    2024-07-12 07:26:04       30 阅读
  4. 递推(C语言)

    2024-07-12 07:26:04       18 阅读
  5. C语言 输出图案

    2024-07-12 07:26:04       26 阅读
  6. Python Linux下编译

    2024-07-12 07:26:04       27 阅读
  7. kafka面试题(基础-进阶-高阶)

    2024-07-12 07:26:04       26 阅读
  8. 跨平台开发新纪元:Xcode的多平台应用构建指南

    2024-07-12 07:26:04       33 阅读
  9. 偶现bug解决策略

    2024-07-12 07:26:04       23 阅读
  10. Xcode打包与发布全攻略:将你的应用带上App Store

    2024-07-12 07:26:04       34 阅读
  11. x.permute(0, 3, 1, 2).contiguous() 和 x.permute(0, 3, 1, 2)

    2024-07-12 07:26:04       27 阅读