Raj*_*ela 47 java applet jar signed-applet
当我试图在下面的罐子里自我签名时.
jarsigner -keystore my keystore myjar.jar myalias
Run Code Online (Sandbox Code Playgroud)
它给出了警告:
没有-tsa或-tsacert,这个jar没有时间戳.如果没有时间戳,用户可能无法在签署者证书的到期日期(2014-05-08)之后或任何未来的撤销日期之后验证此jar.
请帮忙解决问题.
l -*_*c l 61
最近的Java 7提供了一个(礼貌的?)警告,关于已经存在了十年的事情......
受信任的时间戳在Java 5(2004)中引入.这样做的动机是,当证书过期时,开发人员不会被迫"每年重新签署已部署的JAR文件".
→ http://docs.oracle.com/javase/1.5.0/docs/guide/security/time-of-signing.html
基于URL的时间戳授权机构(TSA)通常由颁发的证书颁发机构(CA)提供,以使用 CA颁发的相同证书.例如,digicert tsa url可以访问如下:
jarsigner -tsa http://timestamp.digicert.com [.. other options]
→ http://www.digicert.com/code-signing/java-code-signing-guide.htm
使用自签名证书加盖时间戳可能是一个难以实现的目标,因为(1)TSA时间戳需要是一个可信的公平交易(排除"自我时间戳"),以及(2)典型的TSA URL设置为可以使用同一CA组织提供的证书(即TSA URL不处理自签名证书)
更新:
尝试为自签名证书加时间戳的URL:
-tsa http://sha256timestamp.ws.symantec.com/sha256/timestamp根据brad-turek的评论)对于专用网络,可以考虑内部时间戳权限,例如Thales(nCipher)时间戳服务器(或历史上的OpenTSA)
小智 22
此警告告诉您罐子的证书将于5月到期.因此,用户将无法在此日期之后执行您的程序.
为了改善这种情况,添加了时间戳功能.通过这种方式,您可以告诉用户:"我在这个时间点使用了证书(由时间戳代理商提供并验证 - tsa),当它仍然有效时!" 只要您不更改并重新签名jar,即使证书过期,它仍会运行,因为用户看到在创建时证书确实有效.
供参考:http://docs.oracle.com/javase/7/docs/technotes/guides/security/time-of-signing.html
tl; dr:如果忽略警告,你的jar将在14-05-08之后无法运行.添加时间戳,只要您不修改任何内容,它仍会运行.
问候