是否有可能更改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