所谓JKS(Java Key Store)就是利用Java Keytool 工具生成的Keystore文围泠惶底件,JKS文件由公钥和密钥构成,其中的公钥就是我们所说的证书,即cer为后缀的文件,而私钥就是密钥,即以key为后缀的文件。本文主要介绍如何通过Keytool结合Openssl提取jks文件的公钥和私钥。
工具/原料
OpenSSL
一、准备工作
1、下图中的server.jks文件为小编用java keytools生成的密钥库文件。如果想了解如何用Keytool生成jks文件请参阅如下链接。
二、提取公钥(证书)
1、切换到证书的存储路径,执行如下命令:keytool -list -rfc -keystore server.jks -storepass 87654321则可以将证书信息打印到屏幕上。
2、将上图中的字符串复制保存到新建的server.txt文件中
3、将文件server.txt后缀名改为cer,双击打开cer文件即可以看见证书信息。
三、提取私钥
1、jks文件中的私钥不能锂淅铄旰直接得到,需要通过openssl将jks文件转换成pfx格式后再进行提取。执行如下命令将server.jks文件转换芤晟踔肿成server.pfx文件:keytool -v -importkeystore -srckeystore server.jks -srcstoretype jks -srcstorepass 87654321 -destkeystore server.pfx -deststoretype pkcs12 -deststorepass 876543210 -destkeypass 12345678
2、执行如下命令便可以将servers.pfx的私钥导出:openssl pkcs12 -in server.pfx -nocerts -nodes -out server.key
3、执行vim server.key命令,便可以看到pfx文件的私钥信息