我有一个已签名的Java小程序,但证书已过期。我有一份新证书,但我不确定是否能找到原始的未签名小程序jar文件。有没有办法用新证书替换旧证书以更新已签名的jar文件?谢谢。
我有一个已签名的Java小程序,但证书已过期。我有一份新证书,但我不确定是否能找到原始的未签名小程序jar文件。有没有办法用新证书替换旧证书以更新已签名的jar文件?谢谢。
META-INF/*.SF
和 META-INF/*.RSA
下的所有签名文件,然后重新签名。
META-INF/MANIFEST.MF
现在包含旧的(未使用)SHA-1哈希行和新的SHA-256行;剩余的旧行似乎不是问题:jarsigner -verify -verbose
报告新签名一切正常。你不能包装它。
然而,你应该能够使用不同的证书重新签署JAR文件。签署JAR文件并不会以任何方式加密它。它只是在清单部分添加一些内容。
这不是一个安全问题。重新签名的证书与原始证书不同,最终用户必须再次接受它。(我认为你无法避免这个问题...因为那将是一个安全问题!)
无论如何,简单的方法就是尝试重新签署已签名的小程序JAR文件,看看它是否有效,并在用户尝试运行它时如何表现。