1.4. 在 Tekton Chains 中签名 secret


集群管理员可以生成密钥对,并使用 Tekton 链来使用 Kubernetes secret 为工件签名。要使 Tekton 链正常工作,加密的密钥和密码必须作为 openshift-pipelines 命名空间中的 signing-secrets Kubernetes secret 的一部分存在。

目前,Tekton 链支持 x509cosign 签名方案。

注意

只使用一个受支持的签名方案。

1.4.1. 使用 x509 进行签名

要将 x509 签名方案与 Tekton Chains 搭配使用,请将 ed25519ecdsa 类型的 x509.pem 私钥存储在 signing-secrets Kubernetes secret 中。确保密钥保存为未加密的 PKCS8 PEM 文件(BEGIN PRIVATE KEY)。

1.4.2. 使用 cosign 进行签名

使用 Tekton 链的 cosign 签名方案:

  1. 安装 cosign
  2. 生成 cosign.keycosign.pub 密钥对。

    $ cosign generate-key-pair k8s://openshift-pipelines/signing-secrets
    Copy to Clipboard Toggle word wrap

    Cosign 提示您输入密码,并创建一个 Kubernetes secret。

  3. 将加密的 cosign.key 私钥和 cosign.password 解密密码存储在 signing-secrets Kubernetes secret 中。确保私钥存储为 ENCRYPTED COSIGN PRIVATE KEY 类型的加密 PEM 文件。

1.4.3. 签名故障排除

如果签名 secret 已填充,您可能会遇到以下错误:

Error from server (AlreadyExists): secrets "signing-secrets" already exists
Copy to Clipboard Toggle word wrap

要解决这个问题:

  1. 删除 secret:

    $ oc delete secret signing-secrets -n openshift-pipelines
    Copy to Clipboard Toggle word wrap
  2. 重新创建密钥对并使用您首选的签名方案将其存储在 secret 中。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat