首先,我对证书的曝光和体验有限,所以我试图将其用作学习经验并获得答案。
使用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.
我需要做些什么才能让这个工作?