Jenkins和SSL证书

时间:2016-12-14 11:42:41

标签: ssl curl jenkins jenkins-pipeline

首先,我对证书的曝光和体验有限,所以我试图将其用作学习经验并获得答案。

使用Jenkins我希望能够在我的构建中使用证书(.p12)进行身份验证的curl请求。

实施例

curl --cert /Users/Jenkins/.jenkins/workspace/develop-pipeline/../certificates/dev_cert.p12:password https://jira.dev.organisation.co.uk:443/rest/api/2/issue/MYSTATS-1234

所以我有一个桌面证书(私钥),我已经保存到Jenkins运行的机器上,但我也知道我需要一个CA证书来授权这个私钥(希望到目前为止这是正确的)。

当我从Jenkins机器上的终端运行curl命令时,我有一个弹出窗口,询问我是否要使用钥匙串中的证书进行授权,我点击始终允许,因此命令行卷曲请求始终有效。

然而,当我作为Jenkins构建的一部分运行时,我得到了

(58) SSL: Can't load the certificate "/Users/Jenkins/.jenkins/workspace/develop-pipeline/../certificates/dev_cert.p12" and its private key: OSStatus -25308

证书的路径是正确的,因为目录结构是

develop-pipeline
certificates
  dev_cert.p12

我不明白的是,如果我不提供密码

curl --cert /Users/Jenkins/.jenkins/workspace/develop-pipeline/../certificates/dev_cert.p12 https://jira.dev.organisation.co.uk:443/rest/api/2/issue/MYSTATS-1234

我收到消息:

SSL The certificate "/Users/Jenkins/.jenkins/workspace/develop-pipeline/dev_cert.p12" requires a password

所以它找到了证书?

还提供错误的密码

 SSL: Incorrect password for the certificate "/Users/Jenkins/.jenkins/workspace/develop-pipeline/dev_cert.p12" and its private key.

我需要做些什么才能让这个工作?

1 个答案:

答案 0 :(得分:2)

This Github comment帮助我解决了OSX上的卷曲问题。所以在我的情况下通过OpenbSL标志通过Homebrew安装curl就可以了。