7

我已经以各种方式签署了我的 jar,但是当我使用命令时,我不断收到上述错误消息:

jarsigner -verify -verbose [my jar]

有没有办法摆脱这个错误?如果没有重新认证,我的代码会在六个月后停止工作吗?

以下是用于生成密钥并对 Jar 签名的整套命令:

keytool -genkey -keystore [keystore] -alias [alias] -validity 2000
keytool -selfcert -keystore [keystore] -alias [alias] -validity 2000
jarsigner -keystore [keystore] [jar] [alias]
4

1 回答 1

14

有没有办法摆脱这个错误?

这不是错误,而是警告。至于如何避免,请确保证书的有效期超过 6 个月。对于自签名证书,这是在生成密钥时提供正确参数的问题。这是keytool示例

keytool -genkeypair -dname "cn=Mark Jones, ou=Java, o=Oracle, c=US"
  -alias business -keypass <new password for private key> -keystore /working/mykeystore
  -storepass <new password for keystore> -validity 180

重要的部分是-validity 180。例如,180 天或大约 6 个月。使用 1800 大约 5 年。

如果没有重新认证,我的代码会在六个月后停止工作吗?

不完全是。

  • 某些系统上的用户将收到证书已过期的警告,并可以选择接受它。如果他们这样做,它将正常工作。例如“签名已过期”:
  • 其他系统可能被配置为自动拒绝过期的证书。在这些机器上,代码很可能永远不会启动,或者在极少数情况下会加载但应用了沙盒。

我以为我已经关闭了所有的 java 缓存,因为它在尝试开发时很烦人。

测试期间的小程序缓存是一个大问题。在绝对必要之前,我尽量避免在浏览器中测试小程序。我知道有两种方法可以测试不会缓存类的小程序。

  1. 使用小程序查看器
  2. 混合小程序/应用程序
于 2012-05-01T22:45:23.780 回答