java - 签署 JNLP 文件

标签 java java-web-start jnlp digital-certificate

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

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

所以我也计划签署我的 JNLP 文件。要签署我的 JNLP 文件,我遵循了此 link 。 来自文档

"To create a signed JNLP file you don't sign the JNLP file itself, but you include the JNLP file inside the directory structure before the JAR file is created and then signed. The JNLP file must be named APPLICATION.JNLP and is included in the JNLP-INF subdirectory"

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

这是我的文件夹结构

Tomcat

  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文件进行签名。

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

任何帮助将不胜感激。

谢谢

最佳答案

听起来您需要让 CA 向您颁发新的(未过期)证书。如何执行此操作将根据您的 CA 的不同而有所不同。如果您的证书确实没有过期,那么这应该不会花费您任何费用。但您的证书的有效性取决于您支付的时间。

关于java - 签署 JNLP 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19589894/

相关文章:

java - JLabel.setText() 中的换行符

java - 为什么 AbstractCollection 不实现 iterator()?

java - 类层次解决方案

java - 当我使用 Java Web Start 运行程序时,它没有显示错误

java - 如何将参数传递给 JNLP 启动的 Swing 应用程序?

java - 在本地主机上打开 JNLP 错误

java - 为什么我不能在 Java 中不同类的方法中创建类对象?

java - JMF-无权从小程序写入文件

Java Webstart Jar 签名 : Can it be signed partially?

java - 当我安装了 Java 1.6 时,WebStart 一直尝试使用 Java 1.4