ActiveMQ SSL应用之使用原因、思路、生成密钥和证书

为啥要使用SSL


       ActiveMQ普通的TCP连接方式,报文在网络中是以明文方式传输的,出于安全的考虑,为了确保报文数据在网络传输过程中不会被截取及窃听,需要使用密文传输,MQ本身是支持SSL加密方式的,开启SSL配置即可满足这一需求,并且不需要修改任何业务代码,加密算法本篇以RSA为例。

SSL应用思路


1、使用keytool工具生成RSA密钥和证书文件。
2、ActiveMQ配置文件修改,开启SSL连接器。
3、编写Java Demo类对SSL连接方式进行验证。
4、使用wireshark对报文进行网络抓包分析。
5、Spring+ActiveMQ使用SSL的方案。
6、Tomcat容器环境中使用SSL连接ActiveMQ。
7、Jboss容器环境中使用SSL连接ActiveMQ。
8、ActiveMQ管理页面,进行报文发送(明文传输),验证是否能正常使用。

以上是ActiveMQ如何学习SSL应用的整体思路,涵盖了SSL服务端的修改和客户端的操作,包括项目中结合Spring框架的应用场景,以及常用Web容器环境下的应用场景,最后是实际生产环境运维中,开启SSL对ActiveMQ管理页面常用操作是否会产生影响的验证。

使用keytool工具生成密钥和证书文件

使用java自带的keytool工具生成RSA的密钥、证书文件;

1>、生成服务端私钥,并导入到服务端keyStore文件中,此操作生成broker1.ks文件,保存服务端私钥,供服务端使用。
在命令行输入:keytool -genkey -alias allen -keyalg RSA -keyStore broker1.ks

此时会生成:broker1.ks文件

2> 根据服务端私钥导出服务端证书,此操作生成broker_cert文件,该文件为服务端的证书。
在命令行输入:keytool -export -alias allen -keyStore broker1.ks -file broker_cert

要求输入刚刚创建的密钥文件的密码

3>导入服务端证书到客户端的Trust keyStore中。此操作生成client.ts文件,保存服务端证书,供客户端使用。即把第2步生成的broker_cert文件生成client.ts文件:因为mq的有client.ts文件因此生成client1.ts
在命令行输入:keytool -import -alias allen -keystore client1.ts -file broker_cert

4>生成客户端私钥,并且导入到客户端keyStore文件中,此操作生成client1.ks文件,保存客户端私钥,供客户端使用。
在命令行输入:keytool -genkey -alias client -keyalg RSA -keyStore client1.ks

 

5>根据客户端私钥导出客户端证书。
在命令行输入:keytool -export -alias client -keystore client1.ks -file client_cert

6>导入客户端证书到服务端的Trust keyStore中,此操作生成broker1.ts文件,保存客户端证书,供服务端使用。
在命令行输入:keytool -import -alias client -keystore broker1.ts -file client_cert

共生成6个文件,密钥和证书的存放位置
Server端需要:
1.keyStore 保存服务端的私钥:broker1.ks文件
2.Trust keyStore 保存客户端的授权证书: broker1.ts文件
Client端需要:
1.keyStore 保存客户端的私钥: client1.ks文件
2.Trust keyStore 保存服务端的授权证书: client1.ts文件

在本例子,Server端指的是ActiveMQ目录,Client端指的是Java Demo类、Tomcat容器、Jboss容器。

注意事项:
1、ActiveMQ自带了密钥和证书文件,在ACTIVE_HOME/conf目录下,命名为broker.ks,client.ks等,密钥密码为password,但这几个文件我在使用时发现会出现null certchain错误。
2、生成文件的命名问题,原则上可以随意命名,为了方便还是建议区分一个服务端和客户端文件,这里为了不与ActiveMQ自带文件冲突,命名成了broker1.ks,client1.ks。
 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值