如何列出和导出 keystore 中的私钥?
最佳答案
您可以使用 Java6 和 OpenSSL 从 keystore 中提取私钥。这一切都取决于 Java 和 OpenSSL 都支持 PKCS#12 格式的 keystore 这一事实。要进行提取,首先使用 keytool
转换为标准格式。确保对两个文件使用相同的密码(私钥密码,而不是 keystore 密码),否则您稍后会在第二步中遇到奇怪的失败。
keytool -importkeystore -srckeystore keystore.jks \
-destkeystore intermediate.p12 -deststoretype PKCS12
接下来,使用 OpenSSL 提取到 PEM:
openssl pkcs12 -in intermediate.p12 -out extracted.pem -nodes
您应该能够足够轻松地处理该 PEM 文件;它是纯文本,其中包含编码的未加密私钥和证书(格式非常明显)。
执行此操作时,请注意确保创建的文件安全。它们包含 secret 凭据。如果您未能正确保护它们,则不会发出任何警告。 保护它们的最简单方法是在除用户之外的任何人都没有任何访问权限的目录中执行所有这些操作。并且永远不要将您的密码放在命令行或环境变量中;其他用户太容易抢到了。
关于java - 如何从 keystore 中列出/导出私钥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/150167/