gpt4 book ai didi

jenkins - 从 Jenkins 凭证管理器导出 keystore

转载 作者:行者123 更新时间:2023-12-01 19:03:26 63 4
gpt4 key购买 nike

有什么方法可以从 jenkins 插件管理器导出之前上传的 keystore 吗?我已经上传了一个用于签名的 .p12 文件,我想在我的新笔记本电脑上下载。不幸的是,我在路上无法访问我的备份,所以我希望有一个简单的解决方案可以从 jenkins 凭据管理器获取文件。

它在credentials.xml 中显示为KeyStoreUploadedBytes。我知道有一种方法可以通过/script 部分解密密码存储。例如, keystore 也可以将其作为字节数组接收吗?

最佳帕特里克

最佳答案

查找您的证书 ID(例如在 URL 中):

Credentials ID in URL

在 Jenkins 实例的脚本控制台中执行脚本:

import com.cloudbees.plugins.credentials.*
import hudson.security.*
import java.security.*
import javax.xml.bind.DatatypeConverter

def creds = CredentialsMatchers
.firstOrNull(
CredentialsProvider
.lookupCredentials(
Credentials.class,
Jenkins.getActiveInstance(),
ACL.SYSTEM,
Collections.emptyList()
),
CredentialsMatchers.withId("9X9X99XX-XX9X-9X99-9X9X-9X9X9999XXX9")
)

// This will print a decrypted password
def password = creds.password
println password

// This will print all the available aliases
creds.keyStore.aliases().each { println it }

// Imagine, the alias you need is myapp.
// Get JVM representation of you certificate and key
def cert = creds.keyStore.getEntry("myapp", new KeyStore.PasswordProtection(password.toCharArray())).certificate
def privKey = creds.keyStore.getEntry("myapp", new KeyStore.PasswordProtection(password.toCharArray())).privateKey

// Format certificate and key
certpem = "-----BEGIN CERTIFICATE-----\n" +
DatatypeConverter.printBase64Binary(cert.encoded) +
"\n-----END CERTIFICATE-----\n";
keypem = "-----BEGIN RSA PRIVATE KEY-----\n" +
DatatypeConverter.printBase64Binary(privKey.encoded) +
"\n-----END RSA PRIVATE KEY-----\n";

// Print them
println certpem
println keypem

顺便说一句,cert.encodedprivKey.encoded 将包含您需要的字节,但是,我猜您对人类可读的证书/ key 更感兴趣代表。

关于jenkins - 从 Jenkins 凭证管理器导出 keystore ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49259967/

63 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com