能否使用新证书重新签名Java小程序?

5

我有一个已签名的Java小程序,但证书已过期。我有一份新证书,但我不确定是否能找到原始的未签名小程序jar文件。有没有办法用新证书替换旧证书以更新已签名的jar文件?谢谢。


可能是Java中我们可以重新签名已经签名的JAR文件吗?的重复问题。 - Andrew White
2个回答

1
为了解决类似的情况,我删除了 META-INF/*.SFMETA-INF/*.RSA 下的所有签名文件,然后重新签名。 META-INF/MANIFEST.MF 现在包含旧的(未使用)SHA-1哈希行和新的SHA-256行;剩余的旧行似乎不是问题:jarsigner -verify -verbose 报告新签名一切正常。

1

你不能包装它。

然而,你应该能够使用不同的证书重新签署JAR文件。签署JAR文件并不会以任何方式加密它。它只是在清单部分添加一些内容。

这不是一个安全问题。重新签名的证书与原始证书不同,最终用户必须再次接受它。(我认为你无法避免这个问题...因为那将是一个安全问题!)


无论如何,简单的方法就是尝试重新签署已签名的小程序JAR文件,看看它是否有效,并在用户尝试运行它时如何表现。


在使用新证书签名之前,请确保删除原始签名信息。如果一个Jar文件被多个证书签名,将会在运行时出现问题。 - Andrew Thompson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接