签名jar的作者不详

时间:2012-05-24 10:25:13

标签: java security applet jarsigner signed-applet

用Java签名jar,我已按照这三步签署

  1. keytool -genkey -keystore myKeyStore -alias me
  2. keytool -selfcert -keystore myKeyStore -alias me
  3. jarsigner -keystore myKeyStore jarfile.jar me
  4. 我的问题如下:

    1. 之后我运行了我的applet,为什么它显示作者未知?
    2. 我可以为我的罐子提供-validity天数,我可以给的最长天数是多少?

3 个答案:

答案 0 :(得分:2)

  1. 您创建的证书是自签名证书。只有已在Java设置中标记为受信任的信任中心之一签名的证书才会显示为“已验证作者”。

  2. 有效期与JAR文件的工作时间无关。有效期仅标记您可以使用证书(或更好地使用属于证书的私钥)进行签名的时间

答案 1 :(得分:2)

  1. 除非数字证书通过密钥链验证回到Verisign等CA(证书颁发机构),否则它将显示为“作者未知”。 “自签名”证书的问题在于,虽然您可以创建声称自己就是自己的证书,但其他人也可以制作声称 他们是谁您的证书是。由于一个“自签名”证书与下一个证明你(IE无价值)的证书一样好,因此JRE声明“作者未知”。
  2. 我不确定,但我记得在以前的证书中使用了5000天。也许真正的问题是,在JRE永远不会信任的证书甚至显示身份的证书上,声称你是谁,你需要多长时间?如果是商业产品,我强烈建议您完成验证(这可能很昂贵)。即使是广泛分发的免费产品也不会受到影响。

答案 2 :(得分:2)

keytool Validity Period中所述,

  

每张证书仅在有限的时间内有效。这段时间用开始日期和时间以及结束日期和时间来描述,可以短至几秒或几乎长达一个世纪。

正如@Andrew和@Robert都注意到的那样,专业软件需要专业签名的证书。对于临时使用,可以在共享另一个信任渠道的人之间使用自签名证书。它还可以帮助拒绝虚假的错误主张。

  • A写一个开源程序,签名为A。
  • B添加恶意软件,无法签署A,签署B。
  • C错误地获得了B的版本并指控了A的罪行。
  • A可以验证是否发生了篡改。