PFX到JKS keytool转换:Alias< *>不存在

时间:2012-11-11 19:06:34

标签: certificate ssl-certificate keytool pfx jks

我正在尝试使用keytool将x.PFX文件转换为x.JKS文件,但我收到以下错误:

keytool error: java.lang.Exception: Alias <2> does not exist

此错误之前的操作是:

列出x.PFX文件内容(只是为了读取别名):

keytool -v -list -storetype pkcs12 -keystore x.pfx

Enter keystore password: x

Keystore type: PKCS12   
Keystore provider: SunJSSE

Your keystore contains 1 entry

Alias name: 2
Creation date: 11-nov-2012

Entry type: PrivateKeyEntry
Certificate chain length: 3
Certificate[1]:
Owner: CN=x, OU=x, C=x
Issuer: CN=x, O=x, C=x
Serial number: x
Valid from: Wed Oct 24 11:46:10 CEST 2012 until: Fri Dec 13 09:28:40 CET 2013
Certificate fingerprints:

etc.

使用“2”作为源别名将x.PFX文件转换为x.JKS文件

keytool -importkeystore -srckeystore x.pfx -srcstoretype pkcs12 -srcalias 2 -destkeystore x.jks -deststoretype jks -destalias xyz
Enter destination keystore password: y
Re-enter new password: y
Enter source keystore password: x
keytool error: java.lang.Exception: Alias <2> does not exist

我不确定我做错了什么? PFX文件只包含一个只有一个别名的条目(2)。我也尝试使用这些srcalias值:2,“2”,“2”。有没有其他方法可以在不知道源别名的情况下使用keytool将PFX转换为JKS?

4 个答案:

答案 0 :(得分:7)

我遇到了完全相同的问题。我已经解决了使用&#39; 1&#39;而不是2.不知道为什么,但它有效。

答案 1 :(得分:4)

如果在pkcs12中设置了别名:

openssl pkcs12 -export -in certificate.pem -inkey private_key.pem -out keystore.p12 -name "myalias"

成功设置了别名:

keytool -importkeystore -srckeystore keystore.p12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype JKS -alias myalias

答案 2 :(得分:3)

你的命令应该看起来更像这个

keytool -importkeystore -srckeystore x.pfx -srcstoretype pkcs12 -***alias*** 2 -destkeystore x.jks -deststoretype jks -destalias xyz

答案 3 :(得分:1)

可能无法找到“2”,因为包含空格(例如“2”)

如果您不想更改别名,只需删除选项 -ssccalias -destalias ,它将与原始别名一起导入。