我们有一个内部专用的应用程序,可以在 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,但我们不会完成签名(长篇大论),并且会使我们的部署从几个小时增加到很多天,这就是为什么我们想知道内部应用程序是否可以使用替代路线。