离线验证工件证明

可以在没有互联网连接的情况下验证工件证明。

先决条件

开始前,应已经为构建生成工件证明。具体见原文链接的“使用工件证明确立构建来源”。

步骤1:下载证明捆绑包

首先在在线计算机从证明 API 获取捆绑包:

gh attestation download PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME

原文输出示例:

Wrote attestations to file sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl.
Any previous content has been overwritten

The trusted metadata is now available at sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl

步骤2:下载受信任的根材料

工件证明在公共仓库使用 Sigstore 公益实例,在私有仓库使用 GitHub 的 Sigstore 实例。一个命令可以获取两者的受信任根材料:

gh attestation trusted-root > trusted_root.jsonl

更新离线环境中的受信任根信息

最佳实践是:每次将新签名内容导入离线环境,都重新生成 trusted_root.jsonl。

文件中的密钥材料没有内置到期日,因此生成根文件之前签名的内容仍会成功验证。生成后签名的内容,也会继续验证,直到 Sigstore 实例轮换密钥材料;这种轮换通常一年发生多次。你无法仅凭旧文件知道其生成之后密钥是否已撤销。

步骤3:离线验证

将以下内容导入离线环境:

  • GitHub CLI。
  • 待验证工件。
  • 证明捆绑包。
  • 受信任根文件。

执行:

gh attestation verify PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME --bundle sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl --custom-trusted-root trusted_root.jsonl

来源:离线验证证明,GitHub Docs 官方中文页面。本文整理官方中文表述,保留全部实质内容及命令;示例摘要是原文占位示例,未在本次环境执行验证。© GitHub Inc.;文档许可待核验,转载依据用户明确授权。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容