我有一个签名的Java小程序,证书刚刚过期。我有一个新的证书,但我不确定我能找到原始的,未签名的applet jar文件。有什么办法可以把签名的jar用新的证书取代旧的证书吗?谢谢。
你无法包装它。
但是,您应该能够使用不同的证书简单地重新签名JAR。无论如何,签署JAR都不会对其进行加密。它只是向清单部分添加了东西。
这不是安全问题。重新签名的证书与原始证书不同,最终用户必须再次接受它。 (我认为你不能避免这种情况......因为这将是一个安全问题!)
无论如何,简单的方法是尝试重新签名已签名的applet JAR,并查看它是否有效,以及当您尝试以用户身份运行它时它的行为方式。
为了解决类似的情况,我删除了META-INF/*.SF
和META-INF/*.RSA
下的所有签名文件并再次签名。 META-INF/MANIFEST.MF
现在包含带有SHA-1哈希的旧(未使用)行和新的SHA-256行;剩下的旧的似乎不是问题:jarsigner -verify -verbose
报告新签名的一切都没问题。