避免安全警告“你想运行这个应用程序吗?”对于JWS应用程序

时间:2013-03-01 12:07:32

标签: java security netbeans jnlp java-web-start

我们有一个使用RxTx更新游戏机固件的Java应用程序。当用户通过WebStart在我们的网站上启动Java应用程序时,为了避免安全警报,我们已经购买了可信证书并使用该证书对应用程序进行了签名。所有检查都表明它已成功签名,如果我在Mac(OS X 10.6.8)上使用Java 1.6.0_41通过Safari启动应用程序,它会在没有任何抱怨的情况下启动。

但是,如果我在Windows 8计算机上使用IE9启动它,我会收到一条警告:“您是否要运行此应用程序?此应用程序将以不受限制的访问方式运行,这可能会使您的计算机和个人信息面临风险。运行此应用程序只有您信任发布者。此应用程序的数字签名已过期。更多信息“。

如果我点击“我收到的更多信息”,此应用程序将在您的计算机上无限制地访问您的个人文件和其他设施(网络摄像头,麦克风)。

虽然应用程序具有数字签名,但应用程序的关联文件(JNLP)没有。数字签名可确保文件来自供应商,并且文件未被更改。

数字签名是使用可信证书生成的。“ 我试图找到一个解决方案,如何不得到这个消息,并认为我需要做的是签署JNLP文件(即将其复制到jar中,如指出here),但我找不到的是如何得到NetBeans要做到这一点!我正在使用NetBeans 6.9.1。任何人都知道如何做到这一点,是否足以签署JNLP?

要验证文件是否已正确签名,我执行了以下操作:

jarsigner -verify -certs -verbose OribooDesktopClient.jar 

    6396 Thu Feb 28 17:14:14 CET 2013 META-INF/MANIFEST.MF
    6354 Thu Feb 28 17:14:14 CET 2013 META-INF/MOVINTOF.SF
    1843 Thu Feb 28 17:14:14 CET 2013 META-INF/MOVINTOF.RSA
       0 Thu Feb 28 17:07:28 CET 2013 META-INF/
       0 Thu Feb 28 17:07:26 CET 2013 oribooDesktopClient/
       0 Thu Feb 28 17:07:26 CET 2013 oribooDesktopClient/resources/
       0 Thu Feb 28 17:07:26 CET 2013 oribooDesktopClient/resources/busyicons/
sm      3912 Thu Feb 28 17:07:26 CET 2013 oribooDesktopClient/BBDatabase.class

  X.509, CN=Movinto fun AB, O=Movinto fun AB, STREET=?rev?gen 138, L=?re, ST=J?mtland, OID.2.5.4.17=83013, C=SE
  [certificate is valid from 2/28/13 1:00 AM to 3/1/14 12:59 AM]

sm      2497 Thu Feb 28 17:07:26 CET 2013 oribooDesktopClient/Binary.class

  X.509, CN=Movinto fun AB, O=Movinto fun AB, STREET=?rev?gen 138, L=?re, ST=J?mtland, OID.2.5.4.17=83013, C=SE
  [certificate is valid from 2/28/13 1:00 AM to 3/1/14 12:59 AM]
....

1 个答案:

答案 0 :(得分:4)

重要的部分是:

  

此应用程序的数字签名已过期。

有关详细信息,请参阅Appearance of Java Security dialog,但您应该期待以下内容:

expired certificate

要删除“已过期”消息,答案是续订证书并再次签名。该对话框仍将显示效果字:

  

此应用程序将以不受限制的访问方式运行,这可能会使您的计算机   和有风险的个人信息。只有在您信任时才运行此应用程序   出版商。

然而,差异将是:

  • '始终信任'将默认为true。
  • 带有感叹号的黄色钻石将变为更友好的颜色。
  • “数字签名已过期”消息以及左下方的黄色盾牌图片将不存在。