2013-03-08 408 views
7

我有一个我需要通过别名引用的pfx证书。问题是keytool无法找到该别名,即使它显示在列表中。keytool找不到别名

keytool -list -keystore temp.pfx -storetype pkcs12 

给了我这样的:

... 
0c5fc7cef279ca390acd2d6bac9ffcf8_ba0cbbb3-323d-4394-8e76-47838adb2a9c, 08/03/2013, PrivateKeyEntry, 
... 

但每当我尝试使用密钥工具与别名做任何事情(即,导出,重命名),它给了我一个错误:

keytool error: java.lang.Exception: Alias <0c5fc7cef279ca390acd2d6bac9ffcf8_ba0cbbb3-323d-4394-8e76-47838adb2a9c> does not exist 

任何想法?

回答

10

事实证明,在检查vim上keytool -list的输出之后,我在别名的末尾发现了一个空字符(它不会被打印到控制台)。有一次,我补充说,引用别名的命令,它的工作:

keytool -keyclone -changealias -v -dest "new_alias" -new newpass -keystore temp.pfx -storetype pkcs12 -alias 0c5fc7cef279ca390acd2d6bac9ffcf8_ba0cbbb3-323d-4394-8e76-47838adb2a9c$'\x00' 

凡尽头才是最重要的:$'\x00'代表在bash空字符。请记住,这是非常依赖外壳的。