本页面介绍了如何轮替 Google Distributed Cloud (GDC) 气隙设备中用于软件包验证的根证书授权机构
GDC 软件包验证使用根证书授权机构 (CA) 来验证发布密钥证书。因此,定期轮换根 CA 证书至关重要。如果发布通知或升级过程中可能显示的警告消息指示您轮换根 CA,您必须轮换根 CA。
准备工作
如需轮替软件包验证证书,您必须拥有必要的身份和访问权限角色:
- 确保您拥有对
package-validation-root-certs ConfigMap的写入权限。 - 请让您的 Security Admin 向您授予 Upgrade Debugger (
upgrade-debugger-cp) 角色。
需要验证证书轮替
在执行操作之前,请验证是否需要轮替软件包验证证书:
设置
KUBECONFIG环境变量:$ KUBECONFIG=PATH_TO_KUBECONFIG_FILE将
PATH_TO_KUBECONFIG_FILE替换为通过在根管理员集群中运行gdcloud auth login获取的kubeconfig文件的路径。通过将当前信任锚与最新信任锚进行比较,确定是否需要升级。系统会将
harbor-system/package-validation-root-certs中的ConfigMap数据与本地信任锚进行比较:$ CURRENT_TRUST_ANCHOR=$(kubectl --kubeconfig=$KUBECONFIG get cm package-validation-root-certs -n harbor-system -o jsonpath='{.data.ca\.crt}') $ LATEST_TRUST_ANCHOR=$(cat /root/release/staging_root_ca_certificate.crt) $ diff <( echo "$CURRENT_TRUST_ANCHOR" ) <( echo "$LATEST_TRUST_ANCHOR" ) && echo trust anchors are same || echo trust anchors are different, upgrade required!
在设备上执行证书轮替和升级
执行以下步骤,以轮换根管理员集群中位于 harbor-system/package-validation-root-certs 的 ConfigMap 对象。基础设施运维人员需要对 ConfigMap 拥有写入权限。
创建以下变量并为其分配值:
USERNAME=USER_NAME #IO TARGET_FOLDER=/tmp/${USERNAME} OUTPUT="${TARGET_FOLDER}/package-validation-root-certs.yaml" LATEST_TRUST_ANCHOR_CA_FILE=/root/release/staging_root_ca_certificate.crt CONFIGMAP_NAME=package-validation-root-certs NAMESPACE=harbor-system将
USER_NAME替换为 IO 用户名。创建目标文件夹,用于存放证书轮换流程的输出文件:
mkdir -p "${TARGET_FOLDER}"更新并替换
LATEST_TRUST_ANCHOR的值:cat <<EOF > "${OUTPUT}" apiVersion: v1 kind: ConfigMap metadata: name: ${CONFIGMAP_NAME} namespace: ${NAMESPACE} data: ca.crt: | $(sed 's/^/ /' "${LATEST_TRUST_ANCHOR_CA_FILE}") EOF使用
kubectl应用新配置:kubectl apply -f ${OUTPUT}确保新应用的 ca.crt 位于
ConfigMap中:kubectl describe configmap package-validation-root-certs -n harbor-system
这有助于在 package-validation-root-cert 中轮替新证书。