首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将Java密钥库转换为PEM格式

将Java密钥库转换为PEM格式
EN

Stack Overflow用户
提问于 2009-03-17 11:14:29
回答 9查看 295.7K关注 0票数 145

我正在尝试使用keytool和openssl应用程序将Java keystore文件转换为PEM文件。但是我找不到一个好的方法来进行转换。有什么想法吗?

我没有直接将密钥库转换为PEM,而是尝试先创建一个PKCS12文件,然后再转换为相关的PEM文件和Keystore。但我无法使用它们建立连接。(请注意,我只需要一个PEM文件和一个Keystore文件来实现安全连接。没有像“从java keystore文件开始”这样的限制。:)所以从其他格式开始对我来说是可以接受的)

但是从jks到pem的直接转换方法更可取。

EN

回答 9

Stack Overflow用户

发布于 2012-11-17 10:46:53

在使用openssl的命令时,我一直收到来自StoBor的错误:

代码语言:javascript
复制
MAC verified OK
Error outputting keys and certificates
139940235364168:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:535:
139940235364168:error:23077074:PKCS12 routines:PKCS12_pbe_crypt:pkcs12 cipherfinal error:p12_decr.c:97:
139940235364168:error:2306A075:PKCS12 routines:PKCS12_item_decrypt_d2i:pkcs12 pbe crypt error:p12_decr.c:123:

由于某些原因,只有这种风格的命令才适用于我的JKS文件

代码语言:javascript
复制
keytool -importkeystore -srckeystore foo.jks \
   -destkeystore foo.p12 \
   -srcstoretype jks \
   -srcalias mykey \
   -deststoretype pkcs12 \
   -destkeypass DUMMY123

关键是设置destkeypass,参数的值并不重要。

票数 30
EN

Stack Overflow用户

发布于 2011-05-21 03:24:47

使用keytool将jks直接转换为pem文件

代码语言:javascript
复制
keytool -exportcert -alias selfsigned -keypass password -keystore test-user.jks -rfc -file test-user.pem
票数 19
EN

Stack Overflow用户

发布于 2009-03-17 05:18:15

keytool命令不允许您从密钥库导出私钥。为此,您必须编写一些Java代码。打开密钥库,获取所需的密钥,并将其保存到PKCS #8格式的文件中。同时保存关联的证书。

代码语言:javascript
复制
KeyStore ks = KeyStore.getInstance("jks");
/* Load the key store. */
...
char[] password = ...;
/* Save the private key. */
FileOutputStream kos = new FileOutputStream("tmpkey.der");
Key pvt = ks.getKey("your_alias", password);
kos.write(pvt.getEncoded());
kos.flush();
kos.close();
/* Save the certificate. */
FileOutputStream cos = new FileOutputStream("tmpcert.der");
Certificate pub = ks.getCertificate("your_alias");
cos.write(pub.getEncoded());
cos.flush();
cos.close();

使用OpenSSL实用程序将这些文件(二进制格式)转换为PEM格式。

代码语言:javascript
复制
openssl pkcs8 -inform der -nocrypt < tmpkey.der > tmpkey.pem
openssl x509 -inform der < tmpcert.der > tmpcert.pem
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/652916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档