自动“安全”代码签名

时间:2012-08-13 08:57:21

标签: code-signing jar-signing

我想在buildserver(Jenkins)中设置作业,以自动签署生成的jar。

出于显而易见的原因,我不想将证书和凭证放在版本控制中,甚至不能在作业配置中读取。

理想情况下,我希望拥有某种“签名服务器”,构建服务器可以将jar发送给,进行签名。

根据文档,Eclipse项目有一个system like that。但是他们使用的技术没有提及。

那么有人知道“唱歌服务器”解决方案,或解决这个问题的不同方法吗?

2 个答案:

答案 0 :(得分:1)

我不确定现有的解决方案。但是,我认为您可以在一天内自行构建解决方案:

机器A将运行Jenkins并拥有一个共享文件夹 机器B将运行任何应用程序/ Web服务器(例如Apache + PHP)并具有签名密钥。

作为Jenkins工作的一部分,您可以执行以下操作: a)将罐子复制到共享文件夹 b)运行shell脚本“wget http:// machineBURL /sign.php?filename=SomeJar.jar”

在机器B上你将拥有PHP脚本,它将获得一个传递的文件名,从共享文件夹中获取带有此文件名的jar,签名并将其放回到同一文件夹中。

答案 1 :(得分:1)

Eclispe WIKI记录了sign process, 简而言之

  • 使用scp将eclipse-master - $ {buildId} .zip复制到使用pserver的eclipse.org签名登台区域。

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

  • 在签名服务器上调用签名脚本/ usr / bin / sign。

<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>