(十四)RabbitMQ消息队列-启用SSL安全通讯
来源:互联网 发布:如何生成数据字典 编辑:程序博客网 时间:2024/06/08 18:29
如果RabbitMQ服务在内网中,只有内网的应用连接,我们认为这些连接都是安全的,但是个别情况我们需要让RabbitMQ对外提供服务。这种情况有两种解决方案:
在RabbitMQ外层在封装一层应用,应用对外提供服务,本质来说RabbitMQ还是只对内网提供服务。相对更安全,但灵活性差。
RabbitMQ直接对外提供服务。这时除了服务本身的安全性还要考虑数据在互联网传输过程中是否可能被拦截破解。业界标准的解决方案就是SSL。
生成证书
首先确保已经安装好openssl,通常在安装WEB运行环境时都会自动安装。我就找了我之前的一个WEB服务器。
检测方法:
openssl version
我在github上发现了一个可以自动生成证书的项目,通过这些shell脚本方便生成证书,项目github地址为:
https://github.com/Berico-Technologies/CMF-AMQP-Configuration
下载之后上传到安装openssl的服务器中
切换到CMF-AMQP-Configuration/ssl 文件夹,并运行
sh setup_ca.sh MyRabbitMQCA
名称定义为”MyRabbitMQCA”,这个名字可以自行指定,用于在证书中显示证书颁发机构名。
- 生成服务器证书
sh make_server_cert.sh rabbitmq-server rabbit
一个参数是服务器名,第二个参数是密码。
- 生成客户端证书
sh create_client_cert.sh rabbit-client rabbit
第一个参数是客户端名称,第二个参数是密码。
执行完以上步骤之后,会在ssl目录下生成:ca、server、client三个文件夹。
配置RabbitMQ Server用到的三个文件如下:
配置RabbitMQ SSL只会用到以下3个文件:
ca/cacert.pemserver/rabbitmq-server.cert.pemserver/rabbitmq-server.key.pem
将这三个文件拷贝到RabbitMQ的/usr/local/rabbitmq/ssl/目录中。
配置RabbitMQ开启SSL
在WEB控制台中可以看到rabbitmq.config的地址,如果没有就新建这个文件
vi /usr/local/rabbitmq/etc/rabbitmq/rabbitmq.config[ {rabbit, [ {tcp_listeners, [5672]}, {ssl_listeners, [5671]}, {ssl_options, [{cacertfile,"/usr/local/rabbitmq/ssl/cacert.pem"}, {certfile,"/usr/local/rabbitmq/ssl/rabbitmq-server.cert.pem"}, {keyfile,"/usr/local/rabbitmq/ssl/rabbitmq-server.key.pem"}, {verify, verify_peer}, {fail_if_no_peer_cert, true} ]} ]}].
ssl_listeners 指定SSL监听5671端口。
fail_if_no_peer_cert 意思是是否强制验证证书。
- 重启RabbitMQ
rabbitmqctl stoprabbitmq-server -detached
- 查看是否开启
RabbitMQ技术交流QQ群:327034977(添加时请备注RabbitMQ)
- (十四)RabbitMQ消息队列-启用SSL安全通讯
- RabbitMQ 消息队列服务器 进程通讯
- RabbitMQ(消息队列)
- rabbitmq启用日志功能记录消息队列收发情况
- RabbitMQ消息队列(1)走进RabbitMQ
- 消息队列-RabbitMq(PHP)
- 消息队列-RabbitMq(PHP)
- RabbitMQ消息队列(二):”Hello, World“
- RabbitMQ消息队列(二):”Hello, World“
- RabbitMQ消息队列(二):”Hello, World“
- RabbitMQ系列三 (深入消息队列)
- RabbitMQ消息队列(二):”Hello, World“
- RabbitMQ消息队列(二):”Hello, World“
- RabbitMQ消息队列(二):”Hello, World“
- RabbitMQ消息队列(二):”Hello, World“
- RabbitMQ消息队列(二):”Hello, World“
- RabbitMQ消息队列(二):”Hello, World“
- (十二)RabbitMQ消息队列-性能测试
- MantisBt安装日志
- 卷积层(ConvolutionLayer)
- 关闭迅雷首页播放视频的方法
- 深度学习与机器学习中开源图片数据库汇总
- 免费的论文查重网站
- (十四)RabbitMQ消息队列-启用SSL安全通讯
- 存储空间的分配和释放
- MFC GDI+双缓冲
- redis之set 集合命令详解
- java基础编程笔记3
- 端口号被占用
- 线程总结
- 解决HttpURLConnection setConnectTimeout超时无响应的问题
- 用java实现从txt文本文件批量导入数据至数据库