【问题标题】:What happens if the certificate of a signed jar (with timestamp) expires如果签名 jar 的证书(带有时间戳)过期会发生什么
【发布时间】:2016-03-01 17:45:31
【问题描述】:

我在 2 年前签署了一个带有时间戳的 jar(小程序)。证书即将到期。会发生什么?是否会对用户发出警告,它会正常工作吗?它会停止工作吗?

我没有在小程序中添加任何特定代码来处理时间戳。我在签名时只包含了 -tsa url。

编辑:它继续工作。

【问题讨论】:

  • 这主要是“尝试找出答案”的情况:创建一个带有明确过期设置为一分钟后的证书的 jar,编译,等待一分钟,然后运行您的应用程序.然后看看它的作用。

标签: java jar-signing


【解决方案1】:

在 Java 5 SE 之前,签名证书已过期的已签名 jar 将不再有效或可用。

对于 Java 5 SE 及更高版本,签名证书过期的已签名 jar 将继续工作。但是,过期的证书不能用于签署任何进一步的 jar。

From Oracle's docs:

在 J2SE 5.0 之前,jarsigner 生成的签名不包含有关何时生成签名的信息。在没有其他可用信息的情况下,系统/部署者(包括 Java 插件的用户)通常基于签名证书的有效性来评估签名 JAR 文件的有效性。当签名证书过期时,系统/部署者会断定签名以及 JAR 文件已经过期。由于签名证书通常每年到期,这会迫使客户每年重新签署已部署的 JAR 文件,从而给客户带来严重问题。

从 J2SE 5.0 开始,jarsigner 可以生成包含时间戳的签名,从而使系统/部署者(包括 Java 插件)能够在签名证书仍然有效时检查 JAR 文件是否已签名。此外,在 J2SE 5.0 中添加了 API,以允许应用程序获取时间戳信息。

【讨论】:

    【解决方案2】:

    它会在时间戳证书保持有效时工作。不会向用户显示任何警告(启动小程序时的常规安全警告除外)。

    一旦时间戳证书过期或被撤销,您的签名 jar 将变得不受信任。

    【讨论】:

      猜你喜欢
      • 2010-09-24
      • 2011-09-08
      • 1970-01-01
      • 2014-03-02
      • 1970-01-01
      • 2016-04-05
      • 2011-03-08
      • 2018-04-09
      • 1970-01-01
      相关资源
      最近更新 更多