Blog background

GitLab-Upgrade-Fehler: Die folgenden Signaturen waren ungültig: EXPKEYSIG 3F01618A51312F3F

Dieser Blogbeitrag erklärt den GitLab-Upgrade-Fehler 'The following signatures were invalid: EXPKEYSIG 3F01618A51312F3F' und wie Sie ihn beheben

Dieser Blogpost wurde von einer Maschine aus dem Englischen übersetzt. Die Originalversion finden Sie hier: Gitlab Upgrade Error: The following signatures were invalid: EXPKEYSIG 3F01618A51312F3F

Bitte kontaktieren Sie uns , falls etwas unklar beschrieben ist, nicht funktioniert, falsch erscheint oder Sie Unterstützung benötigen.

Inhaltsverzeichnis

Das Problem: Abgelaufenes apt-key Signaturproblem beim Upgrade von GitLab

Wir stießen auf die folgende Fehlermeldung beim Upgrade unseres GitLab-Servers git.blunix.com:

apt update
Hit:1 http://mirror.hetzner.com/debian/packages bookworm InRelease
Hit:2 http://deb.debian.org/debian bookworm InRelease
Get:3 http://deb.debian.org/debian bookworm-updates InRelease [55,4 kB]
Hit:4 http://security.debian.org/debian-security bookworm-security InRelease
Get:5 http://mirror.hetzner.com/debian/packages bookworm-updates InRelease [55,4 kB]
Get:6 http://mirror.hetzner.com/debian/security bookworm-security InRelease [48,0 kB]
Get:7 https://packages.gitlab.com/gitlab/gitlab-ce/debian bookworm InRelease [23,3 kB]
Err:7 https://packages.gitlab.com/gitlab/gitlab-ce/debian bookworm InRelease
  The following signatures were invalid: EXPKEYSIG 3F01618A51312F3F GitLab B.V. (package repository signing key)
Fetched 182 kB in 1s (162 kB/s)
Reading package lists... Done
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://packages.gitlab.com/gitlab/gitlab-ce/debian bookworm InRelease: The following signatures were invalid: EXPKEYSIG 3F01618A51312F3F GitLab B.V. (package repository signing key)
W: Failed to fetch https://packages.gitlab.com/gitlab/gitlab-ce/debian/dists/bookworm/InRelease  The following signatures were invalid: EXPKEYSIG 3F01618A51312F3F GitLab B.V. (package repository signing key)
W: Some index files failed to download. They have been ignored, or old ones used instead.

Die Erklärung des Problems: Warum APT-Schlüssel ablaufen

Dieser Fehler weist darauf hin, dass der APT-Repository-Schlüssel, der zum Signieren von Paketen von GitLab verwendet wird, abgelaufen ist (EXPKEYSIG), was bedeutet, dass die kryptografische Signatur nicht mehr als gültig verifiziert werden kann.

Die spezifische Schlüssel-ID in Frage ist 3F01618A51312F3F, die mit “GitLab B.V.” assoziiert ist (“GitLab Besloten Vennootschap”, was Niederländisch für “GitLab Private Company” ist). Dieser Schlüssel ist am 1. März 2024 abgelaufen:

gpg2 --keyring /usr/share/keyrings/gitlab_gitlab-ce-archive-keyring.gpg --list-keys
/usr/share/keyrings/gitlab_gitlab-ce-archive-keyring.gpg
--------------------------------------------------------
pub   rsa4096 2020-03-02 [SC] [expired: 2024-03-01]      <==== HIER
      F6403F6544A38863DAA0B6E03F01618A51312F3F
uid           [ expired] GitLab B.V. (package repository signing key) 

APT-Schlüssel laufen ab, um die Sicherheit zu erhöhen, indem regelmäßig die Überprüfung und Erneuerung von Schlüsseln erforderlich ist und dadurch das Risiko langfristiger Kompromittierungen gemindert wird. Wenn ein APT-Schlüssel abläuft, weigert sich Ihr System, Pakete aus dem zugehörigen Repository zu aktualisieren oder zu installieren, bis der Schlüssel aktualisiert oder durch einen gültigen (nicht abgelaufenen) ersetzt wird.

Es war früher gängige Praxis, den neuen GitLab-GPG-Schlüssel herunterzuladen und ihn mit folgendem Befehl in die Archiv-Keyring-Datei “/etc/apt/trusted.gpg” zu importieren:

curl -s https://packages.gitlab.com/gpg.key | apt-key add -
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).

Dies gibt jedoch eine Warnmeldung aus, dass das Tool “apt-key” veraltet ist. Neuere GitLab-Installationen haben aufgehört, GPG-Schlüssel in der standardmäßigen Debian- (oder Ubuntu-) Keyring-Datei “/etc/apt/trusted.gpg” zu speichern (der Pfad ist für Ubuntu-Server leicht unterschiedlich), und haben begonnen, die GPG-Schlüssel in einer dedizierten Datei “/usr/share/keyrings/gitlab_gitlab-ce-archive-keyring.gpg” zu speichern.

Der Ansatz mit “apt-key” funktioniert NUR, wenn Ihre Datei “/etc/apt/sources.list.d/gitlab_gitlab-ce.list” KEINE Zeile wie diese enthält: “signed-by=/usr/share/keyrings/gitlab_gitlab-ce-archive-keyring.gpg”. In diesem Fall aktualisiert “apt-key” die Datei “/etc/apt/trusted.gpg”. Wenn Sie diese Zeile definiert haben, können Sie den Befehl “apt-key” nicht verwenden und Sie müssen es “auf die moderne Art” machen:

Die Lösung des Problems: Aktualisierung des Archiv-Keyrings mit dem neuen GPG-Schlüssel

Diese sources.list funktioniert mit dem Befehl “apt-key”:

grep archive-keyring /etc/apt/sources.list.d/gitlab_gitlab-ce.list
deb https://packages.gitlab.com/gitlab/gitlab-ce/debian/ bookworm main

Verwenden Sie in diesem Fall die folgenden Befehle:

curl -s https://packages.gitlab.com/gpg.key | apt-key add -
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
apt update
apt upgrade gitlab-ce

Diese sources.list-Datei erfordert den im Folgenden beschriebenen Ansatz:

grep archive-keyring /etc/apt/sources.list.d/gitlab_gitlab-ce.list
deb [signed-by=/usr/share/keyrings/gitlab_gitlab-ce-archive-keyring.gpg] https://packages.gitlab.com/gitlab/gitlab-ce/debian/ bookworm main

Der folgende Befehl importiert den GitLab-GPG-Schlüssel in die GitLab-Keyring-Datei “/usr/share/keyrings/gitlab_gitlab-ce-archive-keyring.gpg”:

wget -qO- https://packages.gitlab.com/gpg.key | \
    gpg --no-default-keyring --keyring /usr/share/keyrings/gitlab_gitlab-ce-archive-keyring.gpg --import

“apt update” funktioniert jetzt ohne Fehler:

apt update
Hit:1 http://mirror.hetzner.com/debian/packages bookworm InRelease
Hit:2 http://deb.debian.org/debian bookworm InRelease
Hit:3 http://security.debian.org/debian-security bookworm-security InRelease
Get:4 http://deb.debian.org/debian bookworm-updates InRelease [55,4 kB]
Hit:5 http://mirror.hetzner.com/debian/packages bookworm-updates InRelease
Hit:6 http://mirror.hetzner.com/debian/security bookworm-security InRelease
Get:7 https://packages.gitlab.com/gitlab/gitlab-ce/debian bookworm InRelease [23,3 kB]
Get:8 https://packages.gitlab.com/gitlab/gitlab-ce/debian bookworm/main amd64 Packages [11,0 kB]
Fetched 89,8 kB in 2s (40,8 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
1 package can be upgraded. Run 'apt list --upgradable' to see it.