通常我们得到的SSL证书至少包含三个文件:
ca.pem:CA根证书
cert.pem:ca.pem签发的用户证书
cert.key:用户私钥
视情况可能还有中间CA的证书。
生成JKS文件需要用到Java中的keytool工具,用来生成KeyStore文件。而keytool需要P12格式,因而需要用到openssl将PEM转换为P12。P12同时包含了证书/私钥,通常由密码保护。openssl的pcs12命令参数如下:
OpenSSL的PKCS12命令
我们可以利用该命令把PEM格式的证书和私钥转换成P12格式:
openssl pkcs12 -export -out cert.p12 -in cert.pem -inkey cert.key -passout pass:yourpassword
1
opensslpkcs12-export-outcert.p12-incert.pem-inkeycert.key-passoutpass:yourpassword
请注意,我们所用的不是-certfile参数:
使用OpenSSL将PEM格式转换为P12格式
然后可以使用命令:
openssl pkcs12 -info -in cert.p12
1
opensslpkcs12-info-incert.p12
来查看包含了证书和私钥的P12文件:
使用OpenSSL查看P12文件
之后,我们可以使用Java中的keytool工具:
Java中的秘钥和管理工具:keytool工具
来生成JKS文件:
keytool.exe -importkeystore -srckeystore cert.p12 -srcstoretype PKCS12 -srcstorepass yourpassword -destkeystore cert.jks -deststorepass yourpassword
1
keytool.exe-importkeystore-srckeystorecert.p12-srcstoretypePKCS12-srcstorepassyourpassword-destkeystorecert.jks-deststorepassyourpassword
使用keytool将p12文件转换为jks文件
其中的参数为:
keytool的importkeystore参数
请注意,keytool执行时的warning中的JCEKS(实际转换后变成了同时兼容JKS和JCEKS两种的格式)。
我们可以使用keytool的list参数查看JKS中的证书和秘钥:
keytool.exe -list -keystore cert.jks
keytool.exe -list -rfc -keystore cert.jks
1
2
keytool.exe-list-keystorecert.jks
keytool.exe-list-rfc-keystorecert.jks
使用keytool的list参数查看JKS中的证书和秘钥
转载时请保留出处,违法转载追究到底:进城务工人员小梅 » PEM证书转JKS