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

mrm*_*mrm 9 certificate jks keytool ssl-certificate pfx

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

keytool error: java.lang.Exception: Alias <2> does not exist
Run Code Online (Sandbox Code Playgroud)

此错误之前的操作是:

列出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.
Run Code Online (Sandbox Code Playgroud)

使用"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
Run Code Online (Sandbox Code Playgroud)

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

小智 7

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


小智 7

如果在 pkcs12 中设置别名:

openssl pkcs12 -export -in certificate.pem -inkey private_key.pem -out keystore.p12 -name "myalias"
Run Code Online (Sandbox Code Playgroud)

aftet 别名设置成功:

keytool -importkeystore -srckeystore keystore.p12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype JKS -alias myalias
Run Code Online (Sandbox Code Playgroud)