JarSigner - 到期后会发生什么

8
如果我使用以下命令创建一个密钥库并签署一个JAR文件:
keytool -genkey -alias myalias -keyalg RSA -validity 365 -keystore keys/my.keystore

jarsigner -verbose -keystore keys/my.keystore -signedjar my_signed.jar my_unsigned.jar myalias

我会生成一个有效期为365天的证书。 365天后,这个jar文件会发生什么?它还可以运行吗?如果使用“jarsigner verify”,有人仍然可以获取签名吗?如何更新证书?


1
好问题,快速建议是创建一个有效期非常短的证书并尝试一下。我也很想看到答案 :) - Paul Whelan
我找到了以下问题和答案,它表明这取决于情况,https://dev59.com/32435IYBdhLWcg3wyzWa - Paul Whelan
是的,我也考虑过那个问题,但是我今天必须签署它 :) - Che Veyo
这个怎么样:https://dev59.com/g2Ei5IYBdhLWcg3wD4gu。Malte的回答很好,很清晰。 - Sjoerd Pottuit
1个回答

5

jarsigner工具有一个选项(-tsa url),参考http://docs.oracle.com/javase/7/docs/technotes/guides/security/time-of-signing.html

如果你使用了tsa选项,签名的时间戳将被包含在jar文件的签名中。许多提供代码签名证书的CA都有这样的时间戳服务器。当之后验证jar文件的签名时,客户端会检查该证书在jar文件签名时是否仍然有效。因此,即使过了一年,该jar文件仍然可以被验证。你应该使用你所属CA的时间服务器,因为时间戳的签名可以被验证(由于你使用了来自该CA的证书对代码进行了签名,证书链已经被包括在内)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接