1. 安装 OpenSSL
从 OpenSSL 的官方网站(https://www.openssl.org/)下载 OpenSSL 工具的 Windows 版本,并安装。
2. 创建 SSL 证书和私钥
执行以下命令以生成私钥文件(.key)和证书签名请求文件(.csr):
bash
openssl req -newkey rsa:2048 -nodes -keyout your_private_key.key -out your_csr_file.csr
在执行此命令时,你需要回答一些关于证书的问题。最重要的是 Common Name (CN),它通常是你的 RabbitMQ 服务器的主机名。
Country Name (2 letter code) [AU]: CN
State or Province Name (full name) [Some-State]: JS
Locality Name (eg, city) []: NJ
Organization Name (eg, company) [Internet Widgits Pty Ltd]: MyOrg
Organizational Unit Name (eg, section) []: MyDep
Common Name (e.g. server FQDN or YOUR name) []: CUS
Email Address []: ******@hotmail.com
使用以下命令生成自签名证书:
bash
openssl x509 -req -in your_csr_file.csr -signkey your_private_key.key -out your_cert_file.pem
3. 配置 RabbitMQ 使用 SSL
在 RabbitMQ 配置文件(rabbitmq.config或者advanced.config)中,添加 SSL 相关配置。示例配置如下:
该文件通常在这里:C:\Users\user_name\AppData\Roaming\RabbitMQ
erlang
[
{rabbit, [
{ssl_listeners, [5671]},
{ssl_options, [
{cacertfile,"path/to/your_csr_file.csr"},
{certfile,"path/to/your_cert_file.pem"},
{keyfile,"path/to/your_private_key.key"},
{verify,verify_peer},
{fail_if_no_peer_cert,true}
]}
]}
].
确保替换上述示例中的路径为你生成的证书和私钥文件的实际路径。
[备注]: 我不太确定 cacertfile 后面应该填什么,似乎填csr或者key都没有什么影响。有清楚的同学欢迎在评论区告诉我。谢谢。
4. 重启 RabbitMQ
在 RabbitMQ 配置更改后,重启 RabbitMQ 服务以使更改生效。