我已经成功地做了一个Java 密钥库对于我的 android 开发平台,但我需要将密钥库拆分为私钥和公钥。如果我理解正确的话,我应该能够将密钥库拆分成这样的文件:
Private Key.pk8
和
Public Certificate.x509.pem
我用了KeyStore 浏览器来创建我的密钥库。我查过这个,但我发现的解释太模糊或结构不太好。有没有办法做到这一点?如果有,可以在 KeyStore Explorer 中完成吗?
答案1
请使用此代码并按照以下步骤生成相关文件
- 将 abc.jks(假设您有 abc.jks 文件)复制到 java 的 bin 文件夹中
- 打开CMD,设置java的bin文件夹路径
- 复制以下代码将 abc.jks 转换为 pfx 格式
keytool -importkeystore -srckeystore abc.jks -srcstoretype jks -destkeystore abc.pfx -deststoretype pkcs12
- 现在您将有一个 abc.pfx 文件,需要将其转换为 pem 格式
- 从以下位置下载 OpenSSL这里
- 复制OpenSSL bin文件夹中的abc.pfx文件
- 将CMD中的路径更改为OpenSSL的bin文件夹
- 以下是将 abc.pfx 转换为 pem 的代码
openssl pkcs12 -in abc.pfx -out abc.pem
- 现在你将拥有一个 abc.pem 文件,其中包含密钥和证书
将第 1 个内容复制到新的记事本中,即密钥文件,并将其重命名为 key.pk8(.pk8 是扩展名)(内容将如下所示) -----开始 RSA 私钥----- MIIEpAIBAAKCAQEAjkC85S808AcrviwX5BYresTSTBmt1DTeVCutG699fI91ykHE at56T8SqCLtd6BunOeYJEdM6kSc6P+6gNI1xTW+ULP3Kf+2rRKyElVCPfJ43jRJW
... 2TXNgIsangK/PWSSBZhX8EVxMV5Or60UkUU7k62bCLaxuq6nnvIKtp7DCXMjlnfS wiP7mUebMR9AsuY4YlnYFCqHy/7UgHdIWSPW4zFzo8dBbdxOrl0gZw== -----结束 RSA 私钥 -----将剩余内容复制到新的记事本并将其重命名为 filename.pem(.pem 是扩展名)(剩余内容将如下所示) -----开始 RSA 私钥----- MIIEpAIBAAKCAQEAjkC85S808AcrviwX5BYresTSTBmt1DTeVCutG699fI91ykHE at56T8SqCLtd6BunOeYJEdM6kSc6P+6gNI1xTW+ULP3Kf+2rRKyElVCPfJ43jRJW
... 2TXNgIsangK/PWSSBZhX8EVxMV5Or60UkUU7k62bCLaxuq6nnvIKtp7DCXMjlnfS wiP7mUebMR9AsuY4YlnYFCqHy/7UgHdIWSPW4zFzo8dBbdxOrl0gZw== -----结束 RSA 私钥 -----
-----开始 RSA 私钥----- MIIEpAIBAAKCAQEAjkC85S808AcrviwX5BYresTSTBmt1DTeVCutG699fI91ykHE at56T8SqCLtd6BunOeYJEdM6kSc6P+6gNI1xTW+ULP3Kf+2rRKyElVCPfJ43jRJW
... 2TXNgIsangK/PWSSBZhX8EVxMV5Or60UkUU7k62bCLaxuq6nnvIKtp7DCXMjlnfS wiP7mUebMR9AsuY4YlnYFCqHy/7UgHdIWSPW4zFzo8dBbdxOrl0gZw== -----结束 RSA 私钥 -----
-----开始 RSA 私钥----- MIIEpAIBAAKCAQEAjkC85S808AcrviwX5BYresTSTBmt1DTeVCutG699fI91ykHE at56T8SqCLtd6BunOeYJEdM6kSc6P+6gNI1xTW+ULP3Kf+2rRKyElVCPfJ43jRJW
... 2TXNgIsangK/PWSSBZhX8EVxMV5Or60UkUU7k62bCLaxuq6nnvIKtp7DCXMjlnfS wiP7mUebMR9AsuY4YlnYFCqHy/7UgHdIWSPW4zFzo8dBbdxOrl0gZw== -----结束 RSA 私钥 -----
如果您使用密钥库资源管理器然后请按照以下步骤操作
- 使用 Keystore Explorer 打开 abc.jks 文件
- 右键单击条目名称,选择导出,然后单击导出私钥,然后选择PKCS#8
- 输入密码,然后将扩展名改为key**.pk8**(这个就是你需要的私钥)
- 再次右键单击条目名称,选择导出,选择导出证书链,选择整个链长度、pkcs #7、PEM,然后导出
最后你将获得所有需要的文件