2012-08-13 41 views
7

我想在我們的buildserver(Jenkins)中設置作業來自動簽名生成的jar文件。自動「安全」代碼簽名

由於顯而易見的原因,我不希望將證書和憑據放入版本控制中,甚至不能在作業配置中讀取。

理想情況下,我想擁有某種「簽署服務器」,其中buildserver可以發送jar到簽名。

根據文檔,Eclipse項目有一個system like that。但是沒有提到他們使用的技術。

那麼有人知道「歌唱服務器」解決方案或解決此問題的不同方法嗎?

回答

1

我不確定現有解決方案。不過,我認爲你可以建立在一天之內對自己的解決方案:

機器A將運行詹金斯,並有一個共享文件夾 機器B將運行任何應用程序/ Web服務器(如例如阿帕奇+ PHP),並且具有簽署密鑰。

由於詹金斯工作的一部分,你採取以下行動: 一)複製罐子共享文件夾 b)運行shell腳本 「的wget的http:// machineBURL /sign.php?filename=SomeJar.jar」

在機器B上,您將擁有PHP腳本,該腳本將獲取傳遞的文件名,從共享文件夾中獲取具有該文件名的jar,簽名並將其放回到同一文件夾中。

1

Eclispe的WIKI記錄了sign process, 短

  • 使用scp到Eclipse的主副本 - $ {} buildId .ZIP使用PSERVER的eclipse.org簽署臨時區域。

<exec dir="${packtmp}" executable="scp" output="signing.txt"> <arg line="${archiveName} dev.eclipse.org:${stagingDirectory}"/> </exec>

  • 調用上簽名服務器簽名腳本的/ usr/bin中/跡象。

<exec dir="." executable="ssh" output="signing.txt" append="true"> <arg line="build.eclipse.org "cd ${stagingDirectory}; /usr/bin/sign ${stagingDirectory}/${archiveName} mail ${stagingDirectoryOutput}""/> </exec>

  • 輪詢輸出目錄中的簽名文件服務器。

<exec dir="." executable="scp" output="signing.txt" append="true"> <arg line="dev.eclipse.org:${stagingDirectory}/${buildId}-out/${archiveName} ${buildDirectory}/${buildLabel}"/> </exec>