我正在尝试使用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?
答案 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 ,它将与原始别名一起导入。