2013-03-25 25 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

相關問題