PFX 到 JKS 密钥工具的转换:别名 <*> 不存在
Posted
技术标签:
【中文标题】PFX 到 JKS 密钥工具的转换:别名 <*> 不存在【英文标题】:PFX to JKS keytool conversion: Alias <*> does not exist 【发布时间】:2012-10-31 07:52:40 【问题描述】:我正在尝试使用 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?
【问题讨论】:
【参考方案1】:我遇到了完全相同的问题。我已经解决了使用 '1' 而不是 2。不知道为什么,但它有效。
【讨论】:
【参考方案2】:如果在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
【讨论】:
这是对我有帮助的答案,因为我的 pkcs12 中没有设置名称;一旦在 pkcs12 中设置,就可以使用我想要的别名创建 JKS。【参考方案3】:你的命令应该看起来更像这样
keytool -importkeystore -srckeystore x.pfx -srcstoretype pkcs12 -***alias*** 2 -destkeystore x.jks -deststoretype jks -destalias xyz
【讨论】:
【参考方案4】:可能找不到“2”,因为包含空格(例如“2”)
如果您不想更改别名,只需删除选项 -srcalias 和 -destalias,它将使用原始别名导入。
【讨论】:
以上是关于PFX 到 JKS 密钥工具的转换:别名 <*> 不存在的主要内容,如果未能解决你的问题,请参考以下文章