是否有可能更改java版本的keytool文件 - .keystore?我们用于签署apks的keystore文件是在java 7下创建的,这个文件太旧了,大家都知道。我们所有的应用程序都是在最新的java版本下开发的,但是由于签名过程的原因,我们仍然需要在我们的机器上保留java 7来进行签名。有没有办法如何在最新的Java版本下复制整个密钥库?我已经尝试过如:KeyStore文件“升级”Java版本
keytool -importkeystore -srckeystore old.keystore -destkeystore new.keystore -v
下的Java 8,我得到异常:
无法初始化,产生java.io.IOException:DerInputStream.getLength(): 冗余长度字节发现
当我在java 7下运行相同的命令,当然它的作品。
已经尝试过:
Oleg的交 - 赋予相同的异常如上
无法初始化,java.io.IOException的:DerInputStream.getLength(): 冗余长度字节发现
使用KeyStore Explorer工具将原始密钥库导入到新工具中,该工具已成功导入证书,但已更改SHA 1个指纹。
在Java 7下创建全新的密钥库文件,并成功使用Java 8的keystool列出其详细信息,只是为了使密钥库文件不知何故被破坏。
甚至尝试过Oleg的建议,打开最新的Java下的这个keystore文件仍然不能正常工作Redundant length bytes exception
。
编辑 由于@ Oleg指出评论,别名可能以某种方式损坏。所以我们不能使用这个最新的Java来签名。所以看起来我的问题没有解决方案。无论如何,将一个密钥库文件的内容复制到另一个是Oleg的解决方案是正确的。
我一直在使用相同的密钥库约17年,如果不是更早可追溯到Java 1.3的,我从来没有遇到兼容性问题。 – EJP