Einführung
In diesem Lab erfahren Sie, wie Sie einen Signierschlüssel in den Docker-Trust-Schlüsselspeicher (Docker trust keystore) mithilfe des Befehls docker trust key load laden können. Zunächst bereiten Sie mithilfe von openssl eine private Schlüsseldatei zum Signieren von Docker-Images vor.
Nach der Schlüsselgenerierung laden Sie diesen privaten Schlüssel in den Docker-Trust-Schlüsselspeicher, ein sicherer Ort für kryptografische Schlüssel. Abschließend erfahren Sie, wie Sie den privaten Schlüssel mit einem bestimmten Namen im Schlüsselspeicher laden können.
Eine private Schlüsseldatei für die Signierung vorbereiten
In diesem Schritt erfahren Sie, wie Sie eine private Schlüsseldatei zum Signieren von Docker-Images vorbereiten können. Docker Content Trust nutzt kryptografische Schlüssel, um die Integrität und Authentizität von Images zu überprüfen. Ein privater Schlüssel ist für das Signieren von Images unerlässlich, während der entsprechende öffentliche Schlüssel von anderen verwendet wird, um die Signatur zu überprüfen.
Zunächst navigieren Sie in das Verzeichnis ~/project, das Ihr Arbeitsverzeichnis für dieses Lab ist.
cd ~/project
Nun generieren Sie einen neuen RSA-Privatschlüssel mithilfe des Befehls openssl. Dieser Befehl erstellt einen 4096-Bit-Privatschlüssel und speichert ihn in einer Datei namens my-signing-key.pem im aktuellen Verzeichnis.
openssl genrsa -out my-signing-key.pem 4096
Sie werden eine Ausgabe sehen, die den Schlüsselgenerierungsprozess anzeigt. Dieser Befehl erzeugt einen privaten Schlüssel im PEM-Format.
Als Nächstes überprüfen wir, ob die Datei my-signing-key.pem im Verzeichnis ~/project erstellt wurde.
ls -l my-signing-key.pem
Sie sollten die Datei mit ihren Berechtigungen, Eigentümer, Gruppe, Größe und Änderungszeit aufgelistet sehen. Dies bestätigt, dass die private Schlüsseldatei erfolgreich generiert wurde.
Den privaten Schlüssel in den Docker-Trust-Schlüsselspeicher laden
In diesem Schritt laden Sie den privaten Schlüssel, den Sie im vorherigen Schritt generiert haben, in den Docker-Trust-Schlüsselspeicher (Docker trust keystore). Der Docker-Trust-Schlüsselspeicher ist ein sicherer Ort, an dem Docker die kryptografischen Schlüssel speichert, die zum Signieren und Überprüfen von Images verwendet werden.
Der Docker-Trust-Schlüsselspeicher befindet sich im Verzeichnis ~/.docker/trust/private. Sie müssen die private Schlüsseldatei, die Sie erstellt haben (my-signing-key.pem), in dieses Verzeichnis kopieren.
Zunächst stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden, in dem Sie den privaten Schlüssel erstellt haben.
cd ~/project
Nun kopieren Sie die Datei my-signing-key.pem in das Verzeichnis für private Schlüssel des Docker-Trust. Möglicherweise müssen Sie das Verzeichnis erstellen, wenn es noch nicht existiert.
mkdir -p ~/.docker/trust/private
cp my-signing-key.pem ~/.docker/trust/private/
Der Befehl mkdir -p erstellt das Verzeichnis und alle erforderlichen übergeordneten Verzeichnisse, falls sie noch nicht existieren. Der Befehl cp kopiert die private Schlüsseldatei.
Nachdem Sie die Datei kopiert haben, können Sie überprüfen, ob der private Schlüssel jetzt im Docker-Trust-Schlüsselspeicher ist, indem Sie den Inhalt des Verzeichnisses ~/.docker/trust/private auflisten.
ls ~/.docker/trust/private/
Sie sollten in der Ausgabe my-signing-key.pem aufgeführt sehen. Dies bestätigt, dass der private Schlüssel erfolgreich in den Docker-Trust-Schlüsselspeicher geladen wurde.
Den privaten Schlüssel mit einem bestimmten Namen laden
In diesem Schritt erfahren Sie, wie Sie einen privaten Schlüssel mit einem bestimmten Namen in den Docker-Trust-Schlüsselspeicher (Docker trust keystore) laden können. Während Sie den Schlüssel einfach wie im vorherigen Schritt kopieren können, ermöglicht der Befehl docker trust key load, dass Sie dem Schlüssel im Docker-Trust-System einen bestimmten Namen zuweisen. Dies kann bei der Verwaltung mehrerer Signierschlüssel hilfreich sein.
Zunächst stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden, in dem Sie die private Schlüsseldatei my-signing-key.pem erstellt haben.
cd ~/project
Nun verwenden Sie den Befehl docker trust key load, um den privaten Schlüssel zu laden. Sie werden aufgefordert, einen Namen für den Schlüssel einzugeben. Nennen wir diesen Schlüssel my-signer.
docker trust key load my-signing-key.pem --name my-signer
Wenn Sie dazu aufgefordert werden, geben Sie my-signer als Namen für den Schlüssel ein.
Loading key from 'my-signing-key.pem'...
Enter name for new key: my-signer
Nachdem Sie den Namen eingegeben haben, werden Sie aufgefordert, ein Passwort für den neuen Schlüssel einzugeben. Für dieses Lab können Sie das Passwort leer lassen, indem Sie einfach die Eingabetaste drücken. In der Praxis wird dringend empfohlen, ein starkes Passwort zu verwenden, um Ihren privaten Schlüssel zu schützen.
Enter passphrase for new key:
Repeat passphrase for new key:
Sie sollten eine Ausgabe sehen, die anzeigt, dass der Schlüssel erfolgreich geladen wurde.
Successfully loaded private key from 'my-signing-key.pem' with ID '...'
Um zu überprüfen, ob der Schlüssel mit dem angegebenen Namen geladen wurde, können Sie die Schlüssel in Ihrem Docker-Trust-Schlüsselspeicher mit dem Befehl docker trust key list auflisten.
docker trust key list
Sie sollten einen Eintrag mit dem Namen my-signer und einer entsprechenden Schlüssel-ID (KEY ID) sehen. Dies bestätigt, dass Sie den privaten Schlüssel erfolgreich mit einem bestimmten Namen geladen haben.
Zusammenfassung
In diesem Lab haben Sie gelernt, wie Sie eine private Schlüsseldatei für die Signierung von Docker-Images mit openssl genrsa vorbereiten. Anschließend haben Sie geübt, den generierten privaten Schlüssel in den Docker-Trust-Schlüsselspeicher (Docker trust keystore) zu laden, indem Sie die Schlüsseldatei in das Verzeichnis ~/.docker/trust/private kopiert haben.



