2

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

  • Unix 系统是“实时的”(读/写),而 Windows 系统是一个只读系统,包含旧数据。
  • Unix 用户可以选择从命令行(使用提供的 shell 脚本)或通过 Java Web Start 运行。
  • Windows 用户只能通过 Java Web Start 运行。
  • Unix 系统无法访问 Internet,但 Windows 系统可以。
  • jnlp 中的安全设置设置为“all-permissions”,这是当前需要的。
  • 该应用程序是在使用 Java 5 的 Unix 系统上编译的,并且 jar 是从那里进行自签名的。该应用程序随后被部署到 Unix 系统,然后“sneaker-netted”到 Windows 系统。

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

Q1:筛选堆积如山的文档,它出现了自签名将很快成为过去,应用程序根本无法运行。这是绝对的吗?我找不到适用于未部署在本地受限域之外的内部 JWS 应用程序的明确答案。

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

Q3:将我们自制的证书分发/安装/注册/任何东西给客户可以解决这个问题吗?

任何帮助或建议<cough> Andrew Thompson I'm talking to you </cough>表示赞赏。

编辑:我们确实可以选择使用受信任的根 CA 签署我们的 jar,但我们不会完成签名(长篇大论),并且会使我们的部署从几个小时增加到很多天,这就是为什么我们想知道内部应用程序是否可以使用替代路线。

4

1 回答 1

1

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

另一种选择(我的选择)肯定是花几个硬币并让您的证书由知名的根 CA 签名。我认为您也可以对 Intranet 域执行此操作。

于 2013-10-23T21:01:25.940 回答