您的位置:首页 > 其它

ActiveMQ SSL应用之二 使用keytool工具生成密钥和证书文件

2016-10-16 21:31 519 查看
一、主要内容

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

二、操作步骤

1、生成服务端私钥,并导入到服务端keyStore文件中,此操作生成broker1.ks文件,保存服务端私钥,供服务端使用。

在命令行输入:

keytool -genkey -alias broker -keyalg RSA -keyStore broker1.ks


会提示你输入以下信息,尽量按真实的信息填写,命令完成后,会在操作目录下生成broker1.ks文件,如下图所示:



2、根据服务端私钥导出服务端证书,此操作生成broker_cert文件,该文件为服务端的证书。

在命令行输入:

keytool -export -alias broker -keyStore broker1.ks -file broker_cert


要求输入刚刚创建的密钥文件的密码,命令完成后,会在操作目录下生成broker_cert证书文件,如下图所示:



3、导入服务端证书到客户端的Trust keyStore中。此操作生成client.ts文件,保存服务端证书,供客户端使用。

在命令行输入:

keytool -import -alias broker -keystore client1.ts -file broker_cert


要求输入两遍密钥文件密码,并且要确认是否信任证书,选择信任(输入”y”),操作完成后,会在操作目录下生成client1.ts客户端证书文件,如下图所示:



4、生成客户端私钥,并且导入到客户端keyStore文件中,此操作生成client1.ks文件,保存客户端私钥,供客户端使用。

在命令行输入:

keytool -genkey -alias client -keyalg RSA -keyStore client1.ks


会提示你输入以下信息,尽量按真实的信息填写,命令完成后,会在操作目录下生成client1.ks客户端密钥文件,如下图所示:



5、根据客户端私钥导出客户端证书。

在命令行输入:

keytool -export -alias client -keystore client1.ks -file client_cert


要求输入客户端密钥文件的密码,命令完成后,会在操作目录生成client_cert客户端证书文件,如下图所示:



6、导入客户端证书到服务端的Trust keyStore中,此操作生成broker1.ts文件,保存客户端证书,供服务端使用。

在命令行输入:

keytool -import -alias client -keystore broker1.ts -file client_cert


要求输入两次客户端密钥文件的密码,注意是客户端密钥的密码,需要信任该证书,命令完成后会在操作目录下生成broker1.ts服务端证书,如下图所示:



以上6步操作,共生成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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  activemq ssl