我们有一个Java应用程序,它使用RxTx来更新我们游戏控制台的固件 . 当用户通过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]
....