2.2. 使用命令行界面使用 Gitsign 签名和验证提交
gitsign
工具可让您使用红帽的 Trusted Artifact Signer (RHTAS)服务签名和验证 Git 存储库提交。
先决条件
- Red Hat OpenShift Container Platform 版本 4.13 或更高版本上的 RHTAS 安装。
- 访问 OpenShift Web 控制台。
-
安装了
oc
、git 二进制文件和git
二进制文件的工作站。 从 OpenShift 集群下载
cosign
二进制文件。-
您必须使用
cosign
版本 2.2 或更高版本。
-
您必须使用
流程
将
gitsign
二进制文件从 OpenShift 集群下载到您的工作站。- 登录到 OpenShift Web 控制台。在主页中,单击 ? 图标,单击 Command line tools,前往 gitsign 下载部分,然后单击您的平台的链接。
在工作站上打开一个终端,解压缩 .gz 文件,并设置执行位:
Example
$ gunzip gitsign-amd64.gz $ chmod +x gitsign-amd64
将二进制文件移到
$PATH
环境中的位置:Example
$ sudo mv gitsign-amd64 /usr/local/bin/gitsign
登录到 OpenShift 集群:
语法
oc login --token=TOKEN --server=SERVER_URL_AND_PORT
示例
$ oc login --token=sha256~ZvFDBvoIYAbVECixS4-WmkN4RfnNd8Neh3y1WuiFPXC --server=https://example.com:6443
注意您可以从 OpenShift Web 控制台查找要在命令行中使用的登录令牌和 URL。登录 OpenShift Web 控制台。点您的用户名,然后点 Copy login 命令。如果被要求,请再次提供您的用户名和密码,然后单击 Display Token 查看命令。
切换到 RHTAS 项目:
语法
oc project PROJECT_NAME
示例
$ oc project trusted-artifact-signer
注意使用 RHTAS 安装的项目名称。
配置 shell 环境以进行提交签名和验证:
示例
$ export TUF_URL=$(oc get tuf -o jsonpath='{.items[0].status.url}' -n trusted-artifact-signer) $ export OIDC_ISSUER_URL=https://$(oc get route keycloak -n keycloak-system | tail -n 1 | awk '{print $2}')/auth/realms/trusted-artifact-signer $ export COSIGN_FULCIO_URL=$(oc get fulcio -o jsonpath='{.items[0].status.url}' -n trusted-artifact-signer) $ export COSIGN_REKOR_URL=$(oc get rekor -o jsonpath='{.items[0].status.url}' -n trusted-artifact-signer) $ export COSIGN_MIRROR=$TUF_URL $ export COSIGN_ROOT=$TUF_URL/root.json $ export COSIGN_OIDC_CLIENT_ID="trusted-artifact-signer" $ export COSIGN_OIDC_ISSUER=$OIDC_ISSUER_URL $ export COSIGN_CERTIFICATE_OIDC_ISSUER=$OIDC_ISSUER_URL $ export COSIGN_YES="true" $ export SIGSTORE_FULCIO_URL=$COSIGN_FULCIO_URL $ export SIGSTORE_OIDC_ISSUER=$COSIGN_OIDC_ISSUER $ export SIGSTORE_REKOR_URL=$COSIGN_REKOR_URL $ export REKOR_REKOR_SERVER=$COSIGN_REKOR_URL
使用 RHTAS 服务配置本地存储库配置以签署您的提交:
示例
$ git config --local commit.gpgsign true $ git config --local tag.gpgsign true $ git config --local gpg.x509.program gitsign $ git config --local gpg.format x509 $ git config --local gitsign.fulcio $SIGSTORE_FULCIO_URL $ git config --local gitsign.rekor $SIGSTORE_REKOR_URL $ git config --local gitsign.issuer $SIGSTORE_OIDC_ISSUER $ git config --local gitsign.clientID trusted-artifact-signer
将提交提交到本地存储库:
示例
$ git commit --allow-empty -S -m “Test of a signed commit”
此时会打开一个 Web 浏览器,允许您使用电子邮件地址为提交签名。
初始化更新框架(TUF)系统:
示例
$ cosign initialize
验证提交:
语法
gitsign verify --certificate-identity=SIGNING_EMAIL --certificate-oidc-issuer=$SIGSTORE_OIDC_ISSUER HEAD
示例
$ gitsign verify --certificate-identity=jdoe@redhat.com --certificate-oidc-issuer=$SIGSTORE_OIDC_ISSUER HEAD
其他资源
- 在 OpenShift 上安装 Red Hat Trusted Artifact Signer。
- 自定义红帽受信任的应用程序管道.
- 有关 签名和验证容器镜像的详细信息,请参阅 RHTAS 部署指南中的使用命令行界面 部分签名和验证容器。
- 更新框架 主页.