
Ich implementiere derzeit eineprivater Docker Registry-Server, der so nginx
konfiguriert ist, dass https
der Datenverkehr sicher an die laufende Docker Registry- docker-compose
Instanz (dh ) weitergeleitet wirdin einem privaten Netzwerk (mit konfiguriertem DNS und DHCP).
Ich habe das gesamte Setup wie erwartet zum Laufen gebracht, musste aberselbstsignierte Zertifikate erstellenda ich nicht berechtigt bin,„Lasst uns verschlüsseln“(harte Anforderung). Ich habe die .crt
Datei /usr/local/share/ca-certificates
auf allen Ubuntu-Hosts in meinem Netzwerk bereitgestellt und den Zertifikatsspeicher aktualisiert (d. h. über sudo update-ca-certificates -f
).
Obwohl das Zertifikat jedoch „vertrauenswürdig“ ist (aus dem obigen Schritt), ist es immer noch als „selbstsigniert“ registriert undDie einzige Möglichkeit, Docker Registry vollständig zum Laufen zu bringen, besteht in der Erstellung einer Datei, /etc/docker/daemon.json
, mit folgendem Inhalt (vorausgesetzt, meine Docker Registry-Instanz läuft auf dem registry
Host in meiner lan
Domäne):
{
"insecure-registries" : [ "registry.lan:5000" ]
}
Dies führt dazu, dass einige Funktionen nicht mehr funktionieren (z. B. funktionieren einige Plug-Ins nicht, wenn „unsichere Registrierungen“ aktiviert sind).
Frage
Wie kann ich mein privates Netzwerk so konfigurieren (vorausgesetzt, es ist die meiste Zeit nicht einmal mit dem Internet verbunden), dass alle Computer im Netzwerk dem Zertifikat „voll und ganz vertrauen“ (das Zertifikat also unter den Hosts im lokalen Netzwerk „öffentlich als vertrauenswürdig“ gilt)?dh welchen Befehl kann ich ausführen oder welche Konfigurationsdatei kann ich optimieren?
Danke schön.
Antwort1
Es reicht nicht aus, Ihr Zertifikat in einzufügen /usr/local/share/ca-certificates
. Sie müssen sicherstellen, dass es chmod für andere gelesen hat, und außerdem seinen relativen Pfad in hinzufügen /usr/local/share/ca-certificates
.
Nehmen wir an, Ihr Zertifikat ist/usr/local/share/ca-certificates/self-signed/yourcert.crt
Sie sollten bearbeiten/etc/ca-certificates.conf
sudo-Editor /etc/ca-certificates.conf
und fügen Sie den relativen Pfad hinzu, genauer gesagt relativ zu /usr/local/share/ca-certificates/
.
Es sollte also ungefähr so lauten:
selbstsigniert/IhrZertifikat.crt
Dann renne
sudo update-ca-zertifikate
In der obigen Befehlsausgabe sollte 1 hinzugefügtes Zertifikat angezeigt werden.
Beachten Sie, dass dieses Zertifikat nur auf diesem bestimmten Host als vertrauenswürdig eingestuft wird. Sie müssen es auch in Ihren Docker-Containern bereitstellen, wenn Sie möchten, dass es intern als vertrauenswürdig eingestuft wird.