Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对JNLP文件进行签名_Java_Java Web Start_Jnlp_Digital Certificate - Fatal编程技术网

Java 对JNLP文件进行签名

Java 对JNLP文件进行签名,java,java-web-start,jnlp,digital-certificate,Java,Java Web Start,Jnlp,Digital Certificate,我正在运行JavaWebStart应用程序。由于应用程序数字签名已过期。我已经从CA购买了签名,并使用storetype作为pkcs12对jar文件进行了签名 对JNLP文件中使用的所有jar进行签名后,启动应用程序。仍然会出现安全警告弹出窗口,并提示消息“应用程序的数字签名已过期”。当我单击从弹出窗口中读取“更多信息”链接时,它会显示“应用程序的一部分缺少数字签名,并且“应用程序的关联文件(JNLP)没有” 所以我也计划签署我的JNLP文件。 从文件中 “要创建已签名的JNLP文件,您不需要对

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

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

所以我也计划签署我的JNLP文件。 从文件中

“要创建已签名的JNLP文件,您不需要对JNLP文件本身进行签名,而是 在 创建JAR文件,然后签名。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文件进行签名

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

任何帮助都将不胜感激


谢谢

听起来您需要让您的CA为您颁发新的(未过期)证书。如何做到这一点将根据您的CA而有所不同。如果您的证书确实未过期,则不应为此支付任何费用。但您的证书的有效期取决于您为其支付的时间。

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

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


谢谢

我不相信签署JNLP会有帮助。您应该放弃应用程序中的所有jar。

如果我对此的理解是正确的,并且正确理解了您的意思,那么您需要将
/JNLP-INF/application.JNLP
放入
.jar
中,然后签名。然后将其复制到自定义位置并启动。这应该会有所帮助


.jnlp
本身没有签名,但是它的副本可以与
应用程序.jnlp
内部的签名的
.jar

是相匹配。我们不应该签署JNLP。我们只有一个瓶子。但是我们应该将jnlp文件复制到jnlp-INF/APPLICATION.jnlp位置