(十四)RabbitMQ消息队列-启用SSL安全通讯
如果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.pem
server/rabbitmq-server.cert.pem
server/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 stop
rabbitmq-server -detached
- 查看是否开启
RabbitMQ技术交流QQ群:327034977(添加时请备注RabbitMQ)
(十四)RabbitMQ消息队列-启用SSL安全通讯的更多相关文章
- (十)RabbitMQ消息队列-高可用集群部署实战
原文:(十)RabbitMQ消息队列-高可用集群部署实战 前几章讲到RabbitMQ单主机模式的搭建和使用,我们在实际生产环境中出于对性能还有可用性的考虑会采用集群的模式来部署RabbitMQ. Ra ...
- SpringBoot笔记十四:消息队列
目录 什么是消息队列 消息队列的作用 异步通信 应用解耦 流量削峰 RabbitMQ RabbitMQ流程简介 RabbitMQ的三种模式 安装RabbitMQ RabbitMQ交换器路由和队列的创建 ...
- (十二)RabbitMQ消息队列-性能测试
原文:(十二)RabbitMQ消息队列-性能测试 硬件配置 宿主机用的联想3850X6的服务器四颗E7-4850v3的处理器,DDR4内存,两块1.25TB的pcie固态.在宿主机上使用的事esxi5 ...
- (四)RabbitMQ消息队列-服务详细配置与日常监控管理
原文:(四)RabbitMQ消息队列-服务详细配置与日常监控管理 RabbitMQ服务管理 启动服务:rabbitmq-server -detached[ /usr/local/rabbitmq/sb ...
- (转)RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)
上篇文章中,我们把每个Message都是deliver到某个Consumer.在这篇文章中,我们将会将同一个Message deliver到多个Consumer中.这个模式也被成为 "pub ...
- RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)
上篇文章中,我们把每个Message都是deliver到某个Consumer.在这篇文章中,我们将会将同一个Message deliver到多个Consumer中.这个模式也被成为 "pub ...
- RabbitMQ消息队列(四)-服务详细配置与日常监控管理
RabbitMQ服务管理 启动服务:rabbitmq-server -detached[ /usr/local/rabbitmq/sbin/rabbitmq-server -detached ] 查看 ...
- RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)[转]
上篇文章中,我们把每个Message都是deliver(提供)到某个Consumer.在这篇文章中,我们将会将同一个Message deliver(提供)到多个Consumer中.这个模式也被成为 & ...
- RabbitMQ消息队列应用
RabbitMQ消息队列应用 消息通信组件Net分布式系统的核心中间件之一,应用与系统高并发,各个组件之间解耦的依赖的场景.本框架采用消息队列中间件主要应用于两方面:一是解决部分高并发的业务处理:二是 ...
随机推荐
- centos6.*yum源更新
[1] 首先备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak [2]编辑vi /etc/yu ...
- Arrays.asList()方法的限制
Arrays.asList()方法的限制是他对所产生的List类型做出了最理想的假设 package example; import java.util.Arrays; import java.uti ...
- Spring中事务的XML方式[声明方式]
事务管理: 管理事务,管理数据,数据完整性和一致性 事务[业务逻辑] : 由一系列的动作[查询书价格,更新库存,更新余额],组成一个单元[买书业务], 当我们动作当中有一个错了,全错~ ACID 原子 ...
- Javascript 6 种继承
1.原型链继承 // 1.原型链继承的两个问题===>在借用构造函数中可以解决下下面的两个问题//problem: 在创建子类型的实例时,不能向超类型的实例传递参数(在这里就是不能向A()里传递 ...
- 【2017"百度之星"程序设计大赛 - 初赛(A)】数据分割
[链接]http://acm.hdu.edu.cn/showproblem.php?pid=6109 [题意] 在这里写题意 [题解] 要处理的关系越多,肯定就越容易错. ->单调性. 根据这个 ...
- Stack switching mechanism in a computer system
A method and mechanism for performing an unconditional stack switch in a processor. A processor incl ...
- COGS——T 1265. [NOIP2012] 同余方程
http://cogs.pro/cogs/problem/problem.php?pid=1265 ★☆ 输入文件:mod.in 输出文件:mod.out 简单对比时间限制:1 s 内 ...
- Linux系列-安装经常使用软件
安装JDK: 理论篇: 一.下载JDK 二.安装 ①复制到/usr/java/路径下 [plain] view plaincopy #mkdir /usr/java/ #cp jdk-7u25-lin ...
- 如何查看kafka消费者信息?
看kafka消费者信息? 进入cd $ZOOKEEPER_HOME/bin下. ./kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zoo ...
- C#做完一个网站怎么发布?
前段时间在局域网上发布了一个自己做的网站,发布过程中遇到了不少问题.下面就发布过程和发布过程中遇到的问题与(你)大家一起分享一下,希望对(你)大家有所帮助吧! 在将ASP.NET网站发布到服务器之前需 ...