3

我正在运行 java web start 应用程序。由于应用程序数字签名已过期。我已经从 CA 购买了签名,并使用 storetype 作为 pkcs12 对我的 jar 文件进行了签名。

在签署 JNLP 文件中使用的所有 jar 并启动应用程序之后。仍然会出现安全警告弹出窗口并提示消息“应用程序的数字签名已过期”。当我单击从弹出窗口中阅读“更多信息”链接时,它显示“应用程序的一部分缺少数字签名。而且“应用程序的关联文件 (JNLP) 没有”。

所以我也计划签署我的 JNLP 文件。要签署我的 JNLP 文件,我已点击此链接。从文件

“要创建签名的 JNLP 文件,您无需对 JNLP 文件本身进行签名,而是在创建 JAR 文件并对其进行签名之前将 JNLP 文件包含在目录结构中。JNLP 文件必须命名为 APPLICATION.JNLP 并包含在JNLP-INF 子目录”

作为文档,我添加了名为“JNLP-INF”的文件夹并添加了一个名为“APPLICATION.JNLP”的文件。

这是我的文件夹结构

雄猫

  webapps

         application_name(xxxx)

                      Client-lib ( all the jars inside is signed)
                      JNLP-INF ( has APPLICATION.JNLP)
                      META-INF
                      WEB-INF
                      client.jnlp
                      index.html

在 build.xml 中,将 test.jnlp 复制到 /JNLP-INF/APPLICATION.JNLP 并签署 jar 文件。

我仍然在警告安全弹出窗口中收到消息,因为“应用程序的数字签名已过期”

任何帮助将不胜感激。

谢谢

4

4 回答 4

0

确保我们清理了小程序和应用程序的所有缓存。要执行此操作,请转到控制面板 -> java -> 临时 Internet 文件 -> 设置 -> 删除文件 -> 选中缓存的应用程序和小程序以及已安装的应用程序和小程序的复选框。

这将确保您的缓存已清除,现在启动您的服务并检查 jar 签名。

谢谢

于 2013-12-11T19:02:47.387 回答
0

我不相信签署你的 JNLP 会有所帮助。相反,您应该辞职应用程序的所有 jar。

于 2013-12-11T19:03:54.887 回答
0

如果我对此是正确的并且正确地理解了你,你需要把它/JNLP-INF/APPLICATION.JNLP放在你.jar的里面然后签名。然后将其复制到自定义位置并启动它。这应该会有所帮助。

本身没有签名,但它的.jnlp副本可以与签名APPLICATION.JNLP的内部匹配 .jar

于 2014-01-17T10:41:37.013 回答
0

听起来您需要让 CA 为您颁发新的(未过期的)证书。如何执行此操作将根据您的 CA 有所不同。如果您的证书确实没有过期,这不应该花费您任何费用。但是您的证书仅与您支付了多长时间一样有效。

于 2013-10-26T14:42:16.413 回答