Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Nachfolgend soll die Installation und Konfiguration von Harbor beschrieben werden.
<blockquote>
Harbor Registry ist eine der bekanntesten und am weitesten verbreiteten Open Source-Lösungen für das Speichern und Verwalten von Docker Images. Dabei geht der Funktionsumfang von Harbor deutlich über den Umfang herkömmlicher Registries, wie zum Beispiel Docker Hub hinaus. (Quelle: bnerd.com)
</blockquote>
1 - Installation
Harbor kann von der Seite „goharbor.io“ (dort dann oben auf „Getting Started“ klicken und auf dieser Seite dann unter Punkt 2 auf „Download the Harbor Installer“). Die verschiedenen Versionen sind auch auf der Release-Seite „https://github.com/goharbor/harbor/releases“ zu finden. Nachfolgend wird der Offline-Installer genutzt. Zum Zeitpunkt der Dokumentation war Version 2.14.1 aktuell.
1.1 - Herunterladen der Installationsdatei
~# wget https://github.com/goharbor/harbor/releases/download/v2.14.1/harbor-offline-installer-v2.14.1.tgz --2025-12-18 22:14:12-- https://github.com/goharbor/harbor/releases/download/v2.14.1/harbor-offline-installer-v2.14.1.tgz\ Auflösen des Hostnamens github.com (github.com)… 140.82.121.3\ Verbindungsaufbau zu github.com (github.com)|140.82.121.3|:443 … verbunden.\ HTTP-Anforderung gesendet, auf Antwort wird gewartet … 302 Found ... Verbindungsaufbau zu release-assets.githubusercontent.com (release-assets.githubusercontent.com)|185.199.111.133|:443 … verbunden.\ HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK\ Länge: 680961237 (649M) [application/octet-stream]\ Wird in »harbor-offline-installer-v2.14.1.tgz« gespeichert. harbor-offline-installer-v2.14.1.tgz 100%[=========================================================================>] 649,42M 18,9MB/s in 35s 2025-12-18 22:14:47 (18,6 MB/s) - »harbor-offline-installer-v2.14.1.tgz« gespeichert [680961237/680961237] ~#
1.2 - Archiv entpacken
~# tar xzvf harbor-offline-installer-v2.14.1.tgz harbor/harbor.v2.14.1.tar.gz\ harbor/prepare\ harbor/LICENSE\ harbor/install.sh\ harbor/common.sh\ harbor/harbor.yml.tmpl ~#
1.3 - Verschlüsselung
Der Harbor bringt selbst keine Zertifikate mit. Diese müssen manuell erstellt oder von Drittanbietern besorgt werden.
1.3.1 - Let's-Encrypt-Zertifikat
Let's Encrypt bietet aktuell noch kostenlose Zertifikate an. Leider war es mir in einem ersten Versuch nicht möglich, mittels des Programmes „certbot“ ein SSL-Zertifikat zu generieren. Laut Recherche im Internet wird noch ein Domain benötigt, welche für die Fritzbox genutzt wird. Dies wird eventuell später nochmal neu getestet.
1.3.2 - Eigenes Zertifikat
Es wird ein eigenes Zertifikat erstllt.
Schritt 1: Erstellen des privaten Schlüssels „ca.key“ für die CA:
~# openssl genrsa -out ca.key 4096
Schritt 2: Erstellen des CA-Zertifikats „ca.crt“:
~# openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=DE/ST=Niedersachsen/L=Hannover/O=looper/OU=Personal/CN=Personal Root CA" -key ca.key -out ca.crt
Schritt 3: Erstellen des privaten Schlüssels „slxharbor.fritz.box.key“ für den Server:
~# openssl genrsa -out slxharbor.fritz.box.key 4096
Schritt 4: Generieren einer Zertifikatsanforderung (CSR):
~# openssl req -sha512 -new -subj "/C=DE/ST=Niedersachsen/L=Hannover/O=looper/OU=Personal/CN=slxharbor.fritz.box" -key slxharbor.fritz.box.key -out slxharbor.fritz.box.csr
Schritt 5: Erstellen der X509-Erweiterungsdatei „v3.ext“:
~# cat> v3.ext <<-EOF authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1=slxharbor.fritz.box DNS.2=slxharbor.fritz DNS.3=slxharbor DNS.4=harbor.fritz.box DNS.5=harbor EOF ~#
Schritt 6: Erstellen des Zertifikats „slxharbor.fritz.box.crt“:
~# openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in slxharbor.fritz.box.csr -out slxharbor.fritz.box.crt Certificate request self-signature ok subject=C=DE, ST=Niedersachsen, L=Hannover, O=looper, OU=Personal, CN=slxharbor.fritz.box ~#
.Ende des Dokuments