Vorwort Ich hatte zuvor die 2375 Remote API von Docker aktiviert. Ich erhielt eine Anfrage von der Sicherheitsabteilung des Unternehmens, dass ich die Autorisierung aktivieren muss. Ich habe in der offiziellen Dokumentation nachgeschaut. Schützen Sie den Docker-Daemon-Socket TLS aktivieren Generieren Sie auf dem Docker-Server private und öffentliche CA-Schlüssel $ openssl genrsa -aes256 -out ca-key.pem 4096 Generieren eines privaten RSA-Schlüssels, 4096 Bit langes Modul ............................................................................................................................................................................................................++ ........++ e ist 65537 (0x10001) Geben Sie die Passphrase für ca-key.pem ein: Überprüfen – Geben Sie die Passphrase für ca-key.pem ein: $ openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem Geben Sie die Passphrase für ca-key.pem ein: Sie werden nun aufgefordert, Informationen einzugeben, die in Ihre Zertifikatsanforderung. Was Sie jetzt eingeben, ist ein sogenannter Distinguished Name oder DN. Es gibt eine ganze Reihe von Feldern, aber Sie können einige leer lassen Für einige Felder gibt es einen Standardwert. Wenn Sie „.“ eingeben, bleibt das Feld leer. ----- Ländername (2-Buchstaben-Code) [AU]: Name des Staates oder der Provinz (vollständiger Name) [Some-State]:Queensland Ortsname (z. B. Stadt) []:Brisbane Name der Organisation (z. B. Unternehmen) [Internet Widgits Pty Ltd]:Docker Inc Name der Organisationseinheit (z. B. Abschnitt) []:Verkauf Allgemeiner Name (z. B. Server-FQDN oder IHR Name) []:$HOST E-Mail-Adresse []:[email protected] Sobald Sie eine Zertifizierungsstelle haben, können Sie einen Serverschlüssel und eine Zertifikatsignieranforderung (CSR) erstellen.
$ openssl genrsa -out server-key.pem 4096 Generieren eines privaten RSA-Schlüssels, 4096 Bit langes Modul ....................................................................................................++ .................................................................................................................++ e ist 65537 (0x10001) $ openssl req -subj "/CN=$HOST" -sha256 -new -key server-key.pem -out server.csr Verwenden Sie als Nächstes die Zertifizierungsstelle, um den öffentlichen Schlüssel zu signieren: $ echo subjectAltName = DNS:$HOST,IP:$HOST:127.0.0.1 >> extfile.cnf $ echo extendedKeyUsage = serverAuth >> extfile.cnf Schlüssel generieren: $ openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem \ -CAcreateserial -out server-cert.pem -extfile extfile.cnf Unterschrift ok Betreff=/CN=Ihr.Host.com Abrufen des privaten CA-Schlüssels Geben Sie die Passphrase für ca-key.pem ein: Erstellen Sie den Clientschlüssel und die Zertifikatsignieranforderung: $ openssl genrsa -out key.pem 4096 Generieren eines privaten RSA-Schlüssels, 4096 Bit langes Modul ................................................................++ ................++ e ist 65537 (0x10001) $ openssl req -subj '/CN=client' -new -key key.pem -out client.csr Ändern Sie extfile.cnf: echo extendedKeyUsage = clientAuth > extfile-client.cnf Generieren Sie einen privaten Signaturschlüssel: $ openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem \ -CAcreateserial -out cert.pem -extfile extfile-client.cnf Unterschrift ok Betreff=/CN=Kunde Abrufen des privaten CA-Schlüssels Geben Sie die Passphrase für ca-key.pem ein: Stoppen Sie den Docker-Dienst und ändern Sie die Docker-Dienstdatei [Einheit] Beschreibung=Docker-Anwendungscontainer-Engine Dokumentation=http://docs.docker.io [Service] Umgebung="PFAD=/opt/kube/bin:/bin:/sbin:/usr/bin:/usr/sbin" ExecStart=/opt/kube/bin/dockerd --tlsverify --tlscacert=/root/docker/ca.pem --tlscert=/root/docker/server-cert.pem --tlskey=/root/docker/server-key.pem -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 ExecStartPost=/sbin/iptables -I WEITER -s 0.0.0.0/0 -j AKZEPTIEREN ExecReload=/bin/kill -s HUP $MAINPID Neustart=bei Fehler NeustartSec=5 LimitNOFILE=unendlich LimitNPROC=unendlich LimitCORE=unendlich Delegieren=ja KillMode=Prozess [Installieren] WantedBy=Mehrbenutzer.Ziel Starten Sie dann den Dienst neu systemctl daemon-reload systemctl Neustart docker.service Überprüfen Sie den Dienststatus nach dem Neustart: systemctl status docker.service ● docker.service – Container-Engine für Docker-Anwendungen Geladen: geladen (/etc/systemd/system/docker.service; aktiviert; Vendor-Vorgabe: aktiviert) Aktiv: aktiv (läuft) seit Donnerstag, 08.08.2019, 19:22:26 CST; vor 1 Minute Bereits in Kraft. Herstellen einer Verbindung mithilfe eines Zertifikats: Kopieren Sie die drei Dateien ca.pem, cert.pem und key.pem auf den Client docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H=$HOST:2375 Version kann verbunden werden docker-java TLS aktivieren Das Projekt verwendet den Java-Client docker-java von Docker, um Docker aufzurufen. Um TLS zu unterstützen, müssen Sie beim Erstellen des Clients TLS-Einstellungen hinzufügen. Kopieren Sie zunächst die drei Dateien ca.pem cert.pem key.pem an einen lokalen Speicherort, zum Beispiel E:\\docker\\", Setzen Sie dann withDockerTlsVerify in DefaultDockerClientConfig auf true und legen Sie certpath auf das gerade kopierte Verzeichnis fest. DefaultDockerClientConfig.Builder Builder = DefaultDockerClientConfig.createDefaultConfigBuilder() .withDockerHost("tcp://" + server + ":2375") .withApiVersion("1.30"); wenn (containerConfiguration.getDockerTlsVerify()) { Builder = Builder.mitDockerTlsVerify(true) .withDockerCertPath("E:\\docker\\"); } gibt DockerClientBuilder.getInstance(builder.build()).build() zurück Der große Job ist erledigt. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: Eine kurze Einführung in React
>>: Mysql gibt die Methode zur Datumsbereichsextraktion an
Da jedermanns Zeit kostbar ist, werde ich die Pro...
Überblick In Zabbix Version 5.0 und höher wurde e...
Inhaltsverzeichnis 1. WordPress-Bereitstellung 1....
<br />Original: http://www.alistapart.com/ar...
Inhaltsverzeichnis Zusammenfassung Umgebung und W...
1. löschen delete ist die einzige wirkliche Mögli...
In diesem Artikel finden Sie den spezifischen Cod...
Vorwort Jeder weiß, dass das Partitionsfeld Teil ...
Sie wissen vielleicht bereits, dass die Länge 1 v...
Firewall Eine Firewall ist eine Reihe von Regeln....
Hintergrund Ich möchte die Webpack-Version überpr...
Inhaltsverzeichnis 1 Docker installieren 2 Konfig...
01 Winterflocken (nur einzeln) 02 Snowtop Caps (k...
In diesem Artikel möchten wir eine Sammlung von 2...
Problembeschreibung Ich habe drei virtuelle Masch...