8.2. 使用 Fulcio 和 Rekor 使用 sigstore 签名签名容器镜像


使用 Fulcio 和 Rekor 服务器,您可以使用基于 OpenID Connect (OIDC)服务器身份验证的短期证书来创建签名,而不是手动管理私钥。

先决条件

  • container-tools 元数据包已安装。
  • 您有 Fulcio (https:// <your-fulcio-server>)和 Rekor (https://<your-rekor-server>)服务器正在运行,且配置了。
  • podman 已安装。

流程

  1. /etc/containers/registries.conf.d/default.yaml 文件中添加以下内容:

    docker:
        <registry>:
            use-sigstore-attachments: true

    通过设置 use-sigstore-attachments 选项,Podman 和 Skopeo 可以将容器 sigstore 签名与镜像一起读写,并将它们保存在与签名镜像相同的存储库中。

    您可以编辑 /etc/containers/registries.d/ 目录中任何 YAML 文件中的 registry 或存储库配置部分。在 /etc/containers/registries.d/ 目录里,每个作用域(default-docker、registry 或 namespace)只能出现在一个文件中。

    您还可以在 /etc/containers/registries.d/default.yaml 文件中编辑系统范围的 registry 配置。请注意,该目录中的所有 YAML 文件都会被读取,因此文件名可以任意命名。

  2. 创建 /etc/containers/registries.d/file.yml 文件:

    fulcio:
      fulcioURL: "https://<your-fulcio-server>"
      oidcMode: "interactive"
      oidcIssuerURL: "https://<your-OIDC-provider>"
      oidcClientID: "sigstore"
    rekorURL: "https://<your-rekor-server>"

    file.yml 是 sigstore 签名参数 YAML 文件,其用于存储创建 sigstore 签名所需的选项。

  3. 为镜像签名并将其推送到注册中心:

    $ podman push --sign-by-sigstore=file.yml <registry>/<namespace>/<image>

    您还可以使用带有类似 --sign-by-sigstore 选项的 skopeo copy 命令来为现有镜像签名,同时将它们在多个容器注册中心之间移动。

    警告

    请注意,您提交至公共服务器的包括公钥、证书和签名元数据。

    如需更多信息,请参阅系统中的 containers-sigstore-signing-params.yaml,podman-push (1)container-registries.d 手册页。

验证

  • 拉取镜像:

    $ podman pull <registry>/<namespace>/<image>

    您需要运行 podman pull 命令,以确保按照我们的配置要求强制镜像签名。如果您尝试从配置的 registry 中拉取未签名或使用错误密钥签名的镜像,命令将失败。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部