内部JNLP应用程序不能在Java 7下运行

时间:2013-10-23 20:26:58

标签: java security java-web-start jnlp self-signed

我们有一个可以从Unix工作站和Windows PC运行的内部应用程序。我们环境的一些背景:

  • Unix系统是“实时”(读/写),而Windows系统是一个只读的日常数据系统。
  • Unix用户可以选择从命令行运行(使用提供的shell脚本),也可以通过Java Web Start运行。
  • Windows用户只能通过Java Web Start运行。
  • Unix系统没有互联网访问权限,但Windows系统却没有。
  • jnlp中的安全设置设置为“all-permissions”,这是当前需要的。
  • 该应用程序使用Java 5在Unix系统上编译,并且jar从那里进行自签名。然后将该应用程序部署到Unix系统,然后“运行网络”到Windows系统。

问题:随着Java 7的安全更新,PC上的某些用户无法启动应用,因为它是自签名的。

Q1:仔细阅读大量文档,出现自签名将很快成为过去,并且应用程序将无法运行所有。这是绝对的吗?我找不到适用于未在本地限制域外部署的内部JWS应用的明确答案。

Q2:对我们的代码进行更改以使其可以作为沙盒应用程序运行并不是一件容易的事。这样做会解决这个问题,还是我们仍然会遇到安全问题?

问题3:向客户分发/安装/注册我们自制的证书会解决这个问题吗?

感谢任何帮助或建议<cough> Andrew Thompson I'm talking to you </cough>

编辑:我们可以选择使用受信任的根CA签署我们的jar,但签名不会由我们完成(长篇故事)并且会使我们的部署从几个几小时到几天,这就是我们想知道内部应用程序是否有替代路线的原因。

1 个答案:

答案 0 :(得分:1)

您需要在用于启动WebStart应用程序的Java VM使用的密钥库/证书存储中导入自创建的证书。

另一种选择(我的选择)绝对是花几枚硬币并让你的证书由一个众所周知的根CA签名。我认为你也可以为内联网域做到这一点。