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