10

我正在尝试使用 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

4 回答 4

8

我有同样的问题。我已经解决了使用 '1' 而不是 2。不知道为什么,但它有效。

于 2014-09-05T16:07:58.707 回答
7

如果在 pkcs12 中设置别名:

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

aftet 别名设置成功:

keytool -importkeystore -srckeystore keystore.p12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype JKS -alias myalias
于 2016-12-12T07:11:15.840 回答
3

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

keytool -importkeystore -srckeystore x.pfx -srcstoretype pkcs12 -***alias*** 2 -destkeystore x.jks -deststoretype jks -destalias xyz
于 2013-07-24T18:15:49.067 回答
2

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

如果您不想更改别名,只需删除选项-srcalias-destalias,它将使用原始别名导入。

于 2012-11-24T11:31:05.927 回答