2013-10-25 64 views
3

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

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

所以我打算我签字JNLP文件也。让我签字JNLP文件,我跟了这link。 从文件

“要创建不签JNLP文件本身就是一个签名的JNLP文件,但 你包括在 JAR文件之前的目录结构中创建JNLP文件,然后进行签名。 JNLP文件必须命名为 APPLICATION.JNLP并包含在JNLP-INF子目录”

正如我已经添加命名为文件夹‘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文件。

不过我得到的警告安全弹出的消息“”应用程序的数字签名已过期”

任何帮助将不胜感激。

感谢

回答

0

这听起来像你需要得到您的CA签发你一个新的(未过期)证书。如何做到这一点将取决于您的CA.如果您的证书确实没有过期,那么这不应该花费任何东西。但是,您的证书只与您付给他们的时间一样有效。

0

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

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

谢谢

0

我不认为签署你的JNLP会有所帮助。你应该放弃你的应用程序的所有罐子。

+1

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

0

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

.jnlp本身没有签名,但它的副本可以针对APPLICATION.JNLP签署.jar