jks 全称java key store ,通常是java 常用的证书文件,一般jks 证书文件包含私钥以及签名的cert一起组成的;想要生成jks证书,一般无特殊要求的情况下,可以通过使用keytool和openssl 来完生成jks证书文件
当前环境centos 7操作系统,且环境已部署有openssl和keytool
如未部署以上服务,请先自行使用yum部署即可
创建 JKS 文件
执行如下指令
keytool -genkeypair -alias ipm -keyalg RSA -keypass 123456 -storepass 123456 -keyalg RSA -keysize 2048 -validity 3650 -keystore ipm.jks
参数注解:
genkeypair 生成密钥对
alias 别名
keyalt 采用公钥算法,默认是DSA
keypass 私钥加解密密码
storepass 密钥库
keysize 密钥长度(DSA算法对应的默认算法是sha1withDSA,不支持2048长度,此时需指定RSA)
keystore 指定keystore文件 如ipm.jks
执行结果
在JDK1.7后的版本生成的jsk文件后都会提示转为使用PKCS12行业标准格式(根据实际需要进行,非必须)
转换为p12格式
keytool -importkeystore -srckeystore ipm.jks -destkeystore ipm.p12 -deststoretype pkcs12
执行结果:
同时如果有其他要求需要装换为其他格式或者提取jks密钥和证书的可以参考如下:
转换为pem格式
转换为pem格式这里就不能使用keytool工具进行操作了,需要使用openssl工具
执行如下:
openssl pkcs12 -in ipm.p12 -out ipm.pem -nodes
执行结果:
从 JKS 密钥库文件导出提取私钥
需要提取私钥是无法直接从 jks文件中获取到私钥的,需要通过openssl
将jks文件转换成pfx格式
转换pfx格式
keytool -v -importkeystore -srckeystore ipm.jks -srcstoretype jks -srcstorepass 123456 -destkeystore ipm.pfx -deststoretype pkcs12 -deststorepass 123456 -destkeypass 123456
执行结果:
然后再进行私钥的提取,执行如下:
openssl pkcs12 -in ipm.pfx -nocerts -nodes -out ipm.key
执行结果:
从 JKS 密钥库文件导出公共证书
执行如下:
keytool -export -alias ipm -file ipm.cer -keystore ipm.jks
执行结果: