Frage

Frage

Ich implementiere derzeit eineprivater Docker Registry-Server, der so nginxkonfiguriert ist, dass httpsder Datenverkehr sicher an die laufende Docker Registry- docker-composeInstanz (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 .crtDatei /usr/local/share/ca-certificatesauf 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 registryHost in meiner lanDomä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?

Dies scheint eine mögliche Lösung zu sein: Erstellen Sie eine CA plus Serverschlüssel in meinem privaten Netzwerk.

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.

verwandte Informationen