In diesem Dokument wird beschrieben, wie Sie die Root-Zertifizierungsstelle (Certificate Authority, CA) aktualisieren, die für die Paketvalidierung in der Google Distributed Cloud (GDC)-Appliance mit Air Gap verwendet wird.
Bei der Validierung von GDC-Paketen wird eine Root-Zertifizierungsstelle (CA) verwendet, um Release-Schlüsselzertifikate zu validieren. Sie müssen diese Root-Zertifizierungsstelle aktualisieren, wenn dies in einer Release-Mitteilung erforderlich ist oder wenn Sie bei einem Systemupgrade eine Warnmeldung sehen.
Hinweis
Um das Zertifikat für die Paketvalidierung zu aktualisieren, benötigen Sie die erforderlichen Identitäts- und Zugriffsrollen:
- Prüfen Sie, ob Sie Schreibzugriff auf die ConfigMap
harbor-system/package-validation-root-certshaben. - Bitten Sie Ihren Sicherheitsadministrator, Ihnen die Rolle „Debugger aktualisieren“ (
upgrade-debugger-cp) zuzuweisen.
Prüfen, ob ein Zertifikatsupgrade erforderlich ist
Prüfen Sie, ob ein Upgrade des Zertifikats zur Paketvalidierung erforderlich ist, bevor Sie den Vorgang ausführen. Vergleichen Sie dazu die aktive ConfigMap in Ihrem Cluster mit dem neuesten Staging-Root-Zertifikat im Upgrade-Bundle:
Legen Sie die Umgebungsvariable
KUBECONFIGfest:$ KUBECONFIG=PATH_TO_KUBECONFIG_FILEErsetzen Sie
PATH_TO_KUBECONFIG_FILEdurch den Pfad zur Dateikubeconfig, die Sie durch Ausführen vongdcloud auth loginim Administratorcluster des Stammclusters erhalten haben.Ermitteln Sie, ob ein Upgrade erforderlich ist, indem Sie den aktuellen Vertrauensanker mit dem neuesten Vertrauensanker vergleichen. Die
ConfigMap-Daten unterharbor-system/package-validation-root-certswerden mit dem lokalen Trust-Anchor verglichen:$ 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!
Zertifikat aktualisieren
Wenn ein Upgrade erforderlich ist, aktualisieren Sie das ConfigMap-Objekt unter harbor-system/package-validation-root-certs im Stammadministratorcluster. Sie benötigen Schreibzugriff auf ConfigMap, um diese Aufgabe auszuführen.
Legen Sie die Umgebungsvariable
KUBECONFIGfest:$ KUBECONFIG=PATH_TO_KUBECONFIG_FILEErsetzen Sie
PATH_TO_KUBECONFIG_FILEdurch den Pfad zur Dateikubeconfig, die Sie durch Ausführen vongdcloud auth loginim Administratorcluster des Stammclusters erhalten haben.Erstellen Sie die folgenden Variablen und weisen Sie ihnen Werte zu:
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-systemErsetzen Sie
USER_NAMEdurch den AA-Nutzernamen.Erstellen Sie den Zielordner, der die Ausgabedateien aus dem Zertifikatsaktualisierungsprozess enthält:
mkdir -p "${TARGET_FOLDER}"Rufen Sie den aktuellen Trust-Anchor ab und speichern Sie ihn in einer lokalen temporären Datei:
CURRENT_TRUST_ANCHOR=$(kubectl --kubeconfig=$KUBECONFIG get configmap "${CONFIGMAP_NAME}" -n "${NAMESPACE}" -o jsonpath="{.data.ca\.crt}" ) CURRENT_TRUST_ANCHOR_CA_FILE=$(mktemp) echo "$CURRENT_TRUST_ANCHOR" > "${CURRENT_TRUST_ANCHOR_CA_FILE}"Generieren Sie die aktualisierte Trust-Anchor-Datei:
cat <<EOF > "${OUTPUT}" apiVersion: v1 kind: ConfigMap metadata: name: ${CONFIGMAP_NAME} namespace: ${NAMESPACE} data: ca.crt: | $(sed 's/^/ /' "${LATEST_TRUST_ANCHOR_CA_FILE}") $(sed 's/^/ /' "${CURRENT_TRUST_ANCHOR_CA_FILE}") EOFPrüfen Sie, ob der Trust-Anker korrekt aktualisiert wurde:
Der Trust-Anchor muss sowohl das aktuelle als auch das neueste Trust-Anchor-Zertifikat enthalten.
$ cat "${OUTPUT}" apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- (certificate content) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (certificate content) -----END CERTIFICATE----- (other certificate) kind: ConfigMap metadata: name: package-validation-root-certs namespace: harbor-systemWenden Sie die neue Konfiguration mit
kubectlan:kubectl --kubeconfig=$KUBECONFIG apply -f ${OUTPUT}Prüfen Sie, ob die neu angewendete ca.crt in
ConfigMapvorhanden ist:kubectl --kubeconfig=$KUBECONFIG describe configmap package-validation-root-certs -n harbor-system
Dadurch wird ein neues Zertifikat in package-validation-root-cert aktualisiert.