第 3 章 更新更新框架元数据文件
默认情况下,更新框架(TUF)元数据文件会在 Securesign 实例的部署日期起 52 周后过期。您至少必须每 52 周更新一次 TUF 元数据文件,然后再过期。红帽建议更新元数据文件,超过一年一次。
此流程指导您刷新根和非 root 元数据文件。
先决条件
- 安装在 Red Hat OpenShift Container Platform 上运行的 RHTAS operator。
- 正在运行的 Securesign 实例。
-
安装了
oc
二进制文件的工作站。
流程
将
tuftool
二进制文件从 OpenShift 集群下载到您的工作站。重要tuftool
二进制文件仅适用于 Linux 操作系统。- 在主页中,单击 ? 图标,单击 Command line tools,转至 tuftool 下载部分,然后点击您的平台的链接。
在工作站上打开一个终端,解压缩二进制
.gz
文件,并设置 execute 位:Example
gunzip tuftool-amd64.gz chmod +x tuftool-amd64
$ gunzip tuftool-amd64.gz $ chmod +x tuftool-amd64
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将二进制文件移到
$PATH
环境中的位置:Example
sudo mv tuftool-amd64 /usr/local/bin/tuftool
$ sudo mv tuftool-amd64 /usr/local/bin/tuftool
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
从命令行登录到 OpenShift:
语法
oc login --token=TOKEN --server=SERVER_URL_AND_PORT
oc login --token=TOKEN --server=SERVER_URL_AND_PORT
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
oc login --token=sha256~ZvFDBvoIYAbVECixS4-WmkN4RfnNd8Neh3y1WuiFPXC --server=https://example.com:6443
$ oc login --token=sha256~ZvFDBvoIYAbVECixS4-WmkN4RfnNd8Neh3y1WuiFPXC --server=https://example.com:6443
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可以从 OpenShift Web 控制台找到用于命令行的登录令牌和 URL。登录 OpenShift Web 控制台。单击您的用户名,然后单击 Copy login command。如果被要求,再次提供您的用户名和密码,然后单击 Display Token 以查看该命令。
切换到 RHTAS 项目:
Example
oc project trusted-artifact-signer
$ oc project trusted-artifact-signer
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置 shell 环境:
Example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据您的要求设置过期持续时间。
创建临时 TUF 目录结构:
Example
mkdir -p "${WORK}/root/" "${KEYDIR}" "${INPUT}" "${TUF_REPO}"
$ mkdir -p "${WORK}/root/" "${KEYDIR}" "${INPUT}" "${TUF_REPO}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 TUF 内容下载到临时 TUF 目录结构中:
Example
oc extract --to "${KEYDIR}/" secret/tuf-root-keys oc cp "${TUF_SERVER_POD}:/var/www/html" "${TUF_REPO}" cp "${TUF_REPO}/root.json" "${ROOT}"
$ oc extract --to "${KEYDIR}/" secret/tuf-root-keys $ oc cp "${TUF_SERVER_POD}:/var/www/html" "${TUF_REPO}" $ cp "${TUF_REPO}/root.json" "${ROOT}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以在一个命令中更新时间戳、快照和目标元数据:
Example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您还可以在 TUF 元数据文件的子集上运行 TUF 元数据更新。例如,
timestamp.json
元数据文件会超过其他元数据文件的频率。因此,您只能运行以下命令来更新时间戳元数据文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 只有在要过期时才更新 root 过期日期:
Example
tuftool root expire "${ROOT}" "${ROOT_EXPIRATION}"
$ tuftool root expire "${ROOT}" "${ROOT_EXPIRATION}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果 root 文件没有接近过期,您可以跳过这一步。
更新根版本:
Example
tuftool root bump-version "${ROOT}"
$ tuftool root bump-version "${ROOT}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 再次为 root 元数据文件签名:
Example
tuftool root sign "${ROOT}" -k "${KEYDIR}/root.pem"
$ tuftool root sign "${ROOT}" -k "${KEYDIR}/root.pem"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置新的 root 版本,并复制 root 元数据文件:
Example
export NEW_ROOT_VERSION=$(cat "${ROOT}" | jq -r ".signed.version") cp "${ROOT}" "${TUF_REPO}/root.json" cp "${ROOT}" "${TUF_REPO}/${NEW_ROOT_VERSION}.root.json"
$ export NEW_ROOT_VERSION=$(cat "${ROOT}" | jq -r ".signed.version") $ cp "${ROOT}" "${TUF_REPO}/root.json" $ cp "${ROOT}" "${TUF_REPO}/${NEW_ROOT_VERSION}.root.json"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将这些更改上传到 TUF 服务器:
Example
oc rsync "${TUF_REPO}/" "${TUF_SERVER_POD}:/var/www/html"
$ oc rsync "${TUF_REPO}/" "${TUF_SERVER_POD}:/var/www/html"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow