5

Java 1.5 添加了支持签名时间戳的增强功能。据我所知,这个想法是签名的 jar 文件不应该因为代码签名证书过期而变得无效,只要文件是在证书有效时签名的。理论上,这意味着我们不必每年在证书到期时重新签名和重新部署我们的应用程序。不幸的是,基于这两个论坛主题,实施中似乎存在问题:

http://forums.sun.com/thread.jspa?threadID=744677
http://forums.sun.com/thread.jspa?threadID=5309004

我即将开始对此进行测试,但我想知道是否有人成功地做到了这一点,不必在客户端上导入时间戳证书(这会破坏整个目的)?

4

2 回答 2

4

不幸的是,这个功能在这个时候似乎完全没有价值。对 jar 文件进行签名时添加时间戳很容易,只需在jarsigner命令中添加此参数即可:

-tsa https://timestamp.geotrust.com/tsa

这是 Thawte 时间戳服务器的 URL。不幸的是,Thawte 时间戳 CA 证书不包含在 Java 运行时的受信任 CA 证书列表中,因此它实际上毫无意义。也就是说,如果您在代码签名证书过期后加载小程序,您将看到“不受信任”警告对话框而不是“受信任”警告对话框。

这里发布了一种“解决方法”,但它通过在小程序本身中嵌入 Thawte 时间戳 CA 证书并keytool在客户端上运行以导入证书来工作。但是我看不出这是如何工作的,因为在此代码运行之前用户已经看到了签名代码对话框。

我会继续寻找解决方案,但我不抱希望。我无法想象为什么在这段时间之后 Java 运行时还没有包含可用的时间戳 CA 证书。

于 2009-01-14T16:06:53.207 回答
4

Thawte TSA 根证书已添加到 Sun 的 6u10 和 5.0u18 的 JRE cacerts 文件中。

于 2010-02-03T14:39:07.400 回答