如何用已有的证书文件和私钥文件生成keystore
背景:本端设备与对端设备进行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也可以。
多谢了!