如何用已有的证书文件和私钥文件生成keystore

longgedexin9 2015-07-31 05:46:36
背景:本端设备与对端设备进行socket通信,采用SSL双向认证,用的mina组件。

java启用SSL,只需要读取2个keystore文件:my.keystore和trust.keystore。
my.keystore存储本端证书,trust.keystore是存储的本端信任证书。

对于my.keystore和trust.keystore的生成方法,网上的介绍都是这样的:
1、trust.keystore的生成
比较简单,可以通过keytool工具,用对端的证书文件(比如server.cer)来生成:
keytool -import -alias "my server cert" -file server.cer -keystore my.truststore
2、my.keystore的生成
用keytool命令直接生成,比如:
keytool -genkey -v -alias "my client key" -validity 365 -keystore my.keystore
我理解,这样相当于同时生成了证书和私钥,存储到my.keystore里。(不知道这样理解对不对?)


对于trust.keystore,倒没什么疑问,但是my.keystore的生成有问题啊:
产品商用的时候,肯定不能用keytool这样生成一个keystore直接用吧,肯定要用正规途径获得的证书文件和私钥,比如当前就是my.cer和my_key.pem两个文件。
但java又直接用不了my.cer和my_key.pem,必须转成jks格式的keystore才可以。
要命的是,keytool工具并没有合并证书和私钥文件的方法,因为keytool -import命令只能指定证书文件,没有指定私钥文件的参数。

求助大神,有什么方法,可以把my.cer和my_key.pem合并成java能识别的keystore?或者有其他办法,能直接用my.cer和my_key.pem也可以。
多谢了!
...全文
4427 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mytongyonghao 2017-06-09
  • 打赏
  • 举报
回复
使用openssl命令 好像是能合成jks的
jingle_nie 2016-02-17
  • 打赏
  • 举报
回复
参考:http://www.agentbob.info/agentbob/79-AB.html
证书的体系架构当中,包括了四个基本的组件,分别是密钥与加密算法,证书证书颁发机构,证书申请、续订和吊销的通道,以及使用证书的应用程序 密钥与加密算法,就能够将明文信息,转化成为密文信息,以确保在网络当中传输时信息的安全,它主要分为两种类型,一种是对称加密算法,加密和解密时使用的都是同样的密钥和算法,一般用于加密数据,另外的一种是非对称加密算法,它包括了一对加密密钥,分别是公钥和私钥,如果公钥用于加密明文成为密文,那么私钥将用于解密密文到明文,公钥可以在网络当中进行传输,私钥不在网络当中传输 一般来说,如果两台计算机之间要传输数据,首先将由发送方计算机通过对称加密完成数据的加密过程,然后再由接收方计算机通过网络传输公钥给发送方,发送方再使用公钥加密对称加密的密钥,并且与加密的数据一起发送给接收方计算机,接收方计算机再使用私钥解密出对称加密的密钥,再使用密钥解密加密的数据,完成数据安全传输的过程 而反过来,如果接收方使用私钥加密一个文件,再通过网络将加密文件、公钥和明文一起发送给发送方,发送方使用公钥解密了文件,与一起接收的明文对比,如果相同,就能证明文件未进行修改,实现签名的功能 而证书,就是加密密钥和算法的载体,一张证书当中,包括了加密密钥,算法,签名等信息,并且对于证书申请、颁发、续订和吊销的整个生命周期,还包括了很多其它的一些属性,应用程序可以通过读取证书的这些信息,完成数据的加密解密,签名和身份验证等不同的应用场景 而证书颁发机构,将负责的证书的整个生命周期管理,证书颁发机构是一个层次化的体系结构,根证书颁发机构将只负责子证书颁发机构的证书颁发和吊销管理,子证书颁发机构将负责应用程序证书的申请请求和管理,根证书颁发机构可以放置在一个隔离的环境当中,进一步增强整个证书链的安全,而子证书颁发机构可以按照需求进行扩展,满足不同规模的应用要求 在我们的课程当中,将按照此最佳实践,完成证书服务当中,不同组件的安装和配置

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧