2013-03-25 55 views
2

我们为我的业务使用JNLP应用程序。实际使用需要每个版本的手动签名罐。这当然会导致拥有不同的证书,过期的证书等等。如何使用Maven签署多个JNLP应用程序

我们POC的maven使用Maven Jarsigner插件自动签名应用程序。

现在,这种工艺的工业化最好的方法是什么?我希望在所有应用程序之间共享证书,而不是每次都重新创建一个。

特别是:

  • 它是正确的有一堆的企业应用证书,或者我应该考虑有每个应用程序吗?

  • 我们可以想象将证书存储为依赖关系(在商业回购下)并且同时拥有dev和release版本的证书吗?说开发证书本地生成和发布证书发布。

  • 这种用途的缺点是什么?

  • 有没有其他更好的解决方案?

感谢您的回答。

回答

0

有很多方法可以解决这个问题,所以我只能分享我对这个问题的想法。

一)我会承担不同的版本将是对不同的分支,所以在本质上,我们只与一个发布版本处理在同一时间

B),然后我每版的假设,你有每个环境不同的证书。可以使用maven配置文件(http://maven.apache.org/guides/introduction/introduction-to-profiles.html)处理每个环境部分,因此...

是否拥有多个或单个证书是一个优先事项。由于它提供了任何给定用户和给定应用程序之间的信任级别,它本质上是风险与可维护性的判断。 风险,因为具有相同证书的多个应用程序提供更高的风险敞口,同样也会导致恶意风险,任何违反其中的行为都将违反所有规则。因此,证书的保护可能很重要。所有应用程序的可维护性都遵循相同的更新周期,并且更改为一个意味着所有更改。

因此,耦合度要高一些,风险更大,维护更简单。如果您是全球企业,Acme Inc的风险可能高于本地企业Icme Inc.,并且它会成为其他人的数据或可能会邀请最安全选项的资金。

我看不出证书无法存储的原因。无论是在存储库还是其他安全回购站,或者只是躺在地上。更有趣的可能是私钥,您可以将其指定为属性,并使开发人员将其绑定到开发人员配置文件,并省略发布配置文件,因此您必须在命令行上提供它们。

假设您使用maven jarsigner插件,您可以使用$ {my.keypass}和$ {my.keystore},然后使用两个属性设置的开发人员配置文件以及仅包含密钥存储区的版本配置文件。

我最后一次使用证书以同样的方式我: - 一组单独的组件 的 - 在单个存储库 - 这可能是建立一个单一的完整实体。

因此共享证书是一件容易的事。除最终产品之外的所有证书均在源代码存储库中发布的证书位于安全服务器上,我们拥有只有少数人可以访问的批处理过程。

至于安全隐患。我不认为我们遇到过一个,但我们准备:)

+0

感谢这种宝贵的反馈意见。存储证书确实是一个公平的途径。我还最终得出结论,默认配置文件应该允许任何人建立和去,而执行发布可能会使用特定的密钥库值(因此不能在所有人之间共享)。 – 2013-06-18 11:22:01

相关问题