Jenkins凭证 - 如何使用.P12证书

时间:2014-04-29 09:54:19

标签: jenkins

我有证书问题,我甚至不确定我是否选择了正确的方式...... 长话短说..我需要我的jenkins工作从网站构建期间下载我需要使用证书身份验证的东西 - 我得到.p12和.cert证书。 我以为我只会通过Jenkins的Credentials插件导入它们,所以我可以在作业中使用它们,但我不能这样做。

到目前为止我做了什么: 我已经创建了keystore xxx.jks并导入了p12和cert。 试图将它的路径添加到“从Jenkins master上的PKCS#12文件”,但获取消息: Could not load keystore java.io.IOException: DerInputStream.getLength(): lengthTag=109, too big.

我试图从Jenkins上传证书,但得到了这个: Could retrieve key "cert alias". You may need to provide a password java.security.UnrecoverableKeyException: Get Key failed: null

我很感激任何建议或建议,包括一些有用的文件(我已经尝试过,但我找不到任何对我有用的东西)。

非常感谢。

2 个答案:

答案 0 :(得分:0)

有几种方法:

  • 您可以将证书导入Jenkins计算机上的某个位置,并使用wget命令引用该绝对位置。
  • 您可以将证书放入SVN,使其成为工作区结帐的一部分,使用wget命令使用相对位置。
  • 您可以使用File Parameter进行作业配置,这将提示您将文件上传到作业的工作区,但是每次作业运行时都需要提供该文件。
  • 使用 Plain Credentials Plugin ,它具有重复 Build Secret Plugin 的“秘密Zip文件”功能(已被弃用,但实际上就是你想)

答案 1 :(得分:0)

我刚刚使用凭证绑定插件https://wiki.jenkins.io/display/JENKINS/Credentials+Binding+Plugin

完成了此操作

将该文件作为文件存储在Jenkins的安全凭据部分中。然后使用以下脚本代码访问文件:

stage('Get orders JSON from web service') {
    withCredentials([file(credentialsId: 'certID', variable: 'MY_CERT')]) {
        ORDERS_JSON = sh(
           script: "curl --cert $MY_CERT https://host.com/api/orders -k",
           returnStdout: true
        ).trim()
    }
}