Nachdem wir die Grundlagen der Docker-Registry verstanden haben, sichern wir sie, indem wir ein selbstsigniertes SSL-Zertifikat generieren. Dieses Zertifikat ermöglicht die HTTPS-Kommunikation mit unserer Registry.
Ein selbstsigniertes Zertifikat ist ein SSL-Zertifikat, das nicht von einer vertrauenswürdigen Zertifizierungsstelle (CA - Certificate Authority) signiert wurde. Obwohl sie nicht für Produktionsumgebungen geeignet sind, die dem öffentlichen Internet ausgesetzt sind, eignen sich selbstsignierte Zertifikate perfekt für Entwicklung, Tests und interne Anwendungen.
Wir verwenden OpenSSL, ein weit verbreitetes Kryptografie-Toolkit, um unser Zertifikat zu erstellen:
-
Erstellen Sie ein Verzeichnis, um unsere Zertifikate zu speichern:
mkdir -p ~/project/registry-certs
cd ~/project/registry-certs
-
Generieren Sie einen privaten Schlüssel:
openssl genrsa -out registry.key 2048
Dieser Befehl generiert einen 2048-Bit-RSA-Privatschlüssel. Sie sollten keine Ausgabe sehen, wenn dies erfolgreich war.
-
Erstellen Sie eine Zertifikatsignierungsanforderung (CSR - Certificate Signing Request) mit dem privaten Schlüssel:
openssl req -new -key registry.key -out registry.csr
Sie werden aufgefordert, Informationen einzugeben, die in Ihrem Zertifikat enthalten sein sollen:
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:California
Locality Name (eg, city) []:San Francisco
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Example Company
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:localhost
Email Address []:[email protected]
Hinweis: Geben Sie für Common Name
localhost
ein, da wir uns auf unserem lokalen Rechner mit der Registry verbinden.
Sie werden auch nach Folgendem gefragt:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Sie können diese leer lassen, indem Sie die Eingabetaste drücken.
-
Generieren Sie das selbstsignierte Zertifikat mit der CSR:
openssl x509 -req -days 365 -in registry.csr -signkey registry.key -out registry.crt
Dieser Befehl erstellt ein selbstsigniertes Zertifikat, das 365 Tage gültig ist.
Sie sollten eine ähnliche Ausgabe sehen:
Signature ok
subject=C = US, ST = California, L = San Francisco, O = Example Company, OU = IT, CN = localhost, emailAddress = [email protected]
Getting Private key
-
Überprüfen Sie, ob die Zertifikats- und Schlüsseldateien erstellt wurden:
ls -l
Sie sollten drei Dateien sehen:
total 12
-rw-r--r-- 1 labex labex 1220 [date] registry.crt
-rw-r--r-- 1 labex labex 1054 [date] registry.csr
-rw-r--r-- 1 labex labex 1679 [date] registry.key
Jetzt haben wir die notwendigen Dateien, um unsere Docker-Registry zu sichern. Im nächsten Schritt konfigurieren wir unsere Registry so, dass sie dieses Zertifikat für die HTTPS-Kommunikation verwendet.