当前位置:   article > 正文

java Rabbitmq ssl 安全连接详细流程(附图)_rabbitstore

rabbitstore

1 生成证书

git clone https://github.com/michaelklishin/tls-gen tls-gen

执行生成命令
cd tls-gen/basic
执行make命令(如提示make命令不存在,请安装python3,同时请确保已存在openssl,可通过openssl命令,如进入命令行,则表示存在,123456为后续加载服务端证书和客户端证书的密码)
make PASSWORD=123456
在这里插入图片描述
执行命令后出现如图的四个文件夹
执行make verify命令,出现ok则表明客户端证书与服务端证书匹配

cd result
在result目录下可看到
在这里插入图片描述
使用ca_certificate.pem,server_certificate.pem,server_key.pem,client_key.p12这四个文件。rabbitmq服务端使用ca_certificate.pem,server_certificate.pem,server_key.pem这三个证书,
客户端(java)使用server_certificate.pem生成的truststore文件和client_key.p12这两个证书

证书默认有效期为5年,可修改有效期,tls-gen的basic目录下打开openssl.cnf文件
在这里插入图片描述
修改default_days可修改有效期,再重新执行上述命令,重新生成证书。

生成java客户端truststore
keytool -import -alias server1 -file /path/to/server_certificate.pem -keystore /path/to/rabbitstore
keytool命令是jdk自带的命令,如没有该命令,请安装jdk1.8
server1为信任库中该证书的名字,需要改为自己想要的名称,名称可任意
/path/to/server_certificate.pem 为当前server_certificate.pem证书所在的位置,
/path/to/rabbitstore 最后生成truststore的位置和名称,名称为rabbitstore

2 配置服务端

ca_certificate.pem,server_certificate.pem,server_key.pem,将这三个证书转移到rabbitmq/ssl目录下

编辑配置文件(老版)
[
{rabbit, [
{tcp_listeners, [5672]},
{ssl_listeners, [5671]},
{ssl_options, [{cacertfile,"/etc/rabbitmq/ssl/ca_certificate.pem"},
{certfile, “/etc/rabbitmq/ssl/server_certificate.pem”},
{keyfile, “/etc/rabbitmq/ssl/server_key.pem”},
{verify,verify_peer},
{fail_if_no_peer_cert, true},
{password, “123456”}
]}
]}
].
注意:最后有一个点

编辑配置文件(新版)
listeners.tcp.default = 5672
#默认用户的密码
default_pass = 123456
#默认账号为admin
default_user = admin
#ssl登陆的关键配置,必须打开5671端口,后续客户端要连接5671端口
listeners.ssl.default = 5671
#三个rabbitmq服务端 证书,此处是容器中的路径,不要修改,对应的是宿主机上的/etc/rabbitmq/ssl目录,只要将这三个证书放到宿主机的/etc/rabbitmq/ssl目录下,则此处就可以加载到
ssl_options.cacertfile = /etc/rabbitmq/ssl/ca_certificate.pem

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/469594
推荐阅读
相关标签
  

闽ICP备14008679号