【问题标题】:How to sign a JNLP application which access the service from a tomcat server?如何签署从 tomcat 服务器访问服务的 JNLP 应用程序?
【发布时间】:2013-10-11 13:44:40
【问题描述】:

我对任何应用程序的安全部分都不熟悉。我对数字证书有非常基本的了解。我听说像 Applets & Java web start 这样的在客户端机器上运行并从远程机器访问其服务的应用程序需要进行数字签名才能不受任何限制地执行活动。

我有一个尚未签名的 Java Web 启动应用程序,每次用户访问它时都会显示一些安全警告。

以下是我的 Java web start 应用程序的详细信息。

  1. 应用程序使用 Java web-start 技术与运行在 Tomcat7 上的 Servlet 进行通信。
  2. DB 是 SQL Server 2012。
  3. 服务器机器:Windows 64 位 2008 R2 Enterprise Server。
  4. Java 7 更新 25 64 位
  5. JWS-app 和 Web-app 所需的所有文件(JNLP、jarfiles)都打包为单个 war 文件并部署到 Tomcat7。

任何人都可以为以下查询提供一些想法:

  1. 在应用程序中签署 jar 文件是避免安全警告的唯一方法吗?
  2. 签署 jar 文件是否收费?有什么方法可以免费给罐子签名吗?
  3. 目前在Tomcat7上作为JavaEE应用程序运行的服务是由Web启动应用程序通过http连接访问的。对 jar 进行签名后,我是否需要使用 https 而不是 http?
  4. 发现需要在.jnlp文件中添加如下标签:<security><all-permissions/></security>
  5. 除了上述更改之外,我还需要在 Java 或 xml 文件中做些什么吗?

注意:对于通过 Internet 访问应用程序的用户,我们会收到一些连接重置错误。在将 java 版本从 Java5 升级到 Java7 后,我们注意到此错误。阅读一些安全策略已更改的地方,现在通过网络下载未签名的 jar 文件有一些问题。但不完全确定错误是由于升级到 java 版本还是由于应用程序代码的某些更改,因为我们在日志文件中除了连接重置之外没有任何异常。

提前致谢

【问题讨论】:

  • 执行 JWS 应用程序。 'phone home' 到与 web 应用程序相同的服务器。? “一些安全警告”的确切文本是什么?我需要these dialogs 中出现的尽可能多的细节。
  • JWS 应用和 web 应用打包为一个单一的 war 文件并部署到 Tomcat7。

标签: java security java-web-start jnlp


【解决方案1】:

数字签名是使用不受信任的证书生成的。

这很说明问题。

在应用程序中签署 jar 文件是避免安全警告的唯一方法吗?

这些罐子显然已经过数字签名,但带有未经验证的证书。

未签名应用。会有不同的警告(Oracle 已经警告说,将来他们将默认 JVM 根本不运行它们)。

一个应用程序。使用经过验证的证书签名将产生与您当前看到的几乎相同的警告,除了将列出“发布者:”,并且如果用户勾选“始终允许”(显然不再出现在自签名或未签名代码上), JRE 将存储并记住该决定。

签署 jar 文件是否收费?有什么方法可以免费给罐子签名吗?

第二个问题的答案是“你现在花了多少钱?”第一个答案是“是”。

目前在Tomcat7上作为JavaEE应用程序运行的服务是由Web启动应用程序通过http连接访问的。 jar 签名后是否需要使用 https 而不是 http?

没有。

我发现我需要在 .jnlp 文件中添加以下标签:<security><all-permissions/></security> 除了上述更改之外,我还需要在 Java 或 xml 文件中做些什么吗?

我怀疑您是否需要指定。甚至是沙盒应用程序。可以“打电话回家”到同一台服务器。如果使用受信任的证书进行数字签名,警告会更温和。


您最需要牢记的一件事是,所有这些安全性并不是为了方便开发人员,而是为了最终用户的安全(以及用户对插件的信心)。因此,当您尝试找到“摆脱它的空间”时,您实际上是在尝试找到 JRE 中的安全漏洞。

如果您确实找到了,请告诉我们,以便我们向 Oracle 提出高优先级错误报告,并将其修复。

【讨论】:

  • 非常感谢您迅速而准确的回答。
猜你喜欢
  • 1970-01-01
  • 2018-06-07
  • 2019-06-14
  • 1970-01-01
  • 2013-06-16
  • 1970-01-01
  • 2020-07-18
  • 1970-01-01
  • 2023-02-20
相关资源
最近更新 更多