Detailliertes Beispiel für eine Remote-Verbindung zu Docker mithilfe einer TLS-verschlüsselten Kommunikation

Detailliertes Beispiel für eine Remote-Verbindung zu Docker mithilfe einer TLS-verschlüsselten Kommunikation

Standardmäßig läuft Docker über einen nicht vernetzten UNIX-Socket. Es können auch HTTP-Sockets zur optionalen Kommunikation verwendet werden.
Wenn Sie auf sichere Weise über das Netzwerk auf Docker zugreifen müssen, können Sie TLS aktivieren, indem Sie das Docker-Flag angeben, um auf ein vertrauenswürdiges CA-Zertifikat zu verweisen.
Im Daemon-Modus werden nur Verbindungen von Clients zugelassen, die durch ein von dieser Zertifizierungsstelle signiertes Zertifikat authentifiziert sind. Im Client-Modus stellt es nur Verbindungen zu Servern her, die über ein von dieser Zertifizierungsstelle signiertes Zertifikat verfügen.

# CA-Zertifikatsverzeichnis erstellen [root@localhost ~]# mkdir tls
[root@localhost ~]# cd tls/
# CA-Schlüssel erstellen [root@localhost tls]# 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:
# CA-Zertifikat erstellen [root@localhost tls]# openssl req -new -x509 -days 1000 -key ca-key.pem -sha256 -subj "/CN=*" -out ca.pem
Geben Sie die Passphrase für ca-key.pem ein:
[root@localhost tls]# ll
Gesamtdosis 8
-rw-r--r--. 1 root root 3326 3. Dezember 17:20 ca-key.pem
-rw-r--r--. 1 Wurzel Wurzel 1765 Dez 3 19:03 ca.pem
# Privaten Serverschlüssel erstellen [root@localhost tls]# openssl genrsa -out server-key.pem 4096
Generieren eines privaten RSA-Schlüssels, 4096 Bit langes Modul
................................................................++
..................++
e ist 65537 (0x10001)
[root@localhost tls]# ll
Gesamtdosis 12
-rw-r--r--. 1 root root 3326 3. Dezember 17:20 ca-key.pem
-rw-r--r--. 1 Wurzel Wurzel 1765 Dez 3 19:03 ca.pem
-rw-r--r--. 1 root root 3243 3. Dezember 19:03 server-key.pem
# Signieren Sie den privaten Schlüssel [root@localhost tls]# openssl req -subj "/CN=*" -sha256 -new -key server-key.pem -out server.csr
[root@localhost tls]# ll
Gesamtdosis 16
-rw-r--r--. 1 root root 3326 3. Dezember 17:20 ca-key.pem
-rw-r--r--. 1 Wurzel Wurzel 1765 Dez 3 19:03 ca.pem
-rw-r--r--. 1 root root 1574 3. Dezember 19:04 server.csr
-rw-r--r--. 1 root root 3243 3. Dezember 19:03 server-key.pem
Signieren Sie mit CA-Zertifikat und privatem Schlüssel und geben Sie das oben festgelegte Passwort ein [root@localhost tls]# openssl x509 -req -days 1000 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem
Unterschrift ok
Betreff=/CN=*
Abrufen des privaten CA-Schlüssels
Geben Sie die Passphrase für ca-key.pem ein:
#Client-Schlüssel generieren [root@localhost tls]# openssl genrsa -out key.pem 4096
Generieren eines privaten RSA-Schlüssels, 4096 Bit langes Modul
....................................................................................................................................++
.................................++
e ist 65537 (0x10001)
#Signieren Sie den Client [root@localhost tls]# openssl req -subj "/CN=client" -new -key key.pem -out client.csr
#Konfigurationsdatei erstellen [root@localhost tls]# echo extendedKeyUsage=clientAuth > extfile.cnf
#Zertifikat signieren [root@localhost tls]# openssl x509 -req -days 1000 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf
Unterschrift ok
Betreff=/CN=Kunde
Abrufen des privaten CA-Schlüssels
Geben Sie die Passphrase für ca-key.pem ein:
[root@localhost tls]# ll
Gesamtdosis 40
-rw-r--r--. 1 root root 3326 3. Dezember 17:20 ca-key.pem
-rw-r--r--. 1 Wurzel Wurzel 1765 Dez 3 19:03 ca.pem
-rw-r--r--. 1 root root 17. Dezember 3 19:35 ca.srl
-rw-r--r--. 1 root root 1696 3. Dez. 19:35 cert.pem
-rw-r--r--. 1 root root 1582 3. Dezember 19:29 client.csr
-rw-r--r--. 1 root root 28 3. Dezember 19:32 extfile.cnf
-rw-r--r--. 1 root root 3243 3. Dezember 19:08 key.pem
-rw-r--r--. 1 root root 1647 Dez 3 19:08 server-cert.pem
-rw-r--r--. 1 root root 1574 3. Dezember 19:04 server.csr
-rw-r--r--. 1 root root 3243 3. Dezember 19:03 server-key.pem
# Löschen Sie unnötige Dateien [root@localhost tls]#

Testen auf dem Client

[root@client ~]# docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H tcp://master:2376 version
Kunde: Docker Engine – Community
 Version: 19.03.13
 API-Version: 1.40
 Go-Version: go1.13.15
 Git-Commit: 4484c46d9d
 Erstellt: Mi., 16. September 2020, 17:03:45 Uhr
 Betriebssystem/Architektur: linux/amd64
 Experimentell: falsch

Server: Docker Engine - Community
 Motor:
 Version: 19.03.13
 API-Version: 1.40 (Mindestversion 1.12)
 Go-Version: go1.13.15
 Git-Commit: 4484c46d9d
 Gebaut: Mi Sep 16 17:02:21 2020
 Betriebssystem/Architektur: linux/amd64
 Experimentell: falsch
 Container:
 Version: 1.3.9
 GitCommit: ea765aba0d05254012b0b9e595e995c09186427f
 laufen:
 Version: 1.0.0-rc10
 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 Docker-Init:
 Version: 0.18.0
 GitCommit: fec3683

Damit ist dieser Artikel über die Verwendung von TLS-verschlüsselter Kommunikation zur Remote-Verbindung mit Docker abgeschlossen. Weitere Informationen zur TLS-verschlüsselten Remote-Verbindung mit Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Docker ermöglicht sicheren TLS-Remoteverbindungszugriff
  • So richten Sie eine VSCode-Remoteverbindung zum Server-Docker-Container ein
  • Docker stellt eine MySQL-Remoteverbindung bereit, um 2003-Probleme zu lösen
  • Tutorial zur Installation von MySQL mit Docker und zur Implementierung einer Remote-Verbindung
  • Docker stellt MySQL bereit, um Beispielcode für eine Remoteverbindung zu erreichen
  • Detaillierte Erläuterung der Remote-Verbindungseinstellungen des Docker-Daemons
  • Implementierungsbeispiel für Docker-Remoteverbindungseinstellungen

<<:  HTML-Tabellen-Tag-Tutorial (26): Zellen-Tag

>>:  So vergessen Sie das Root-Passwort in Mysql8.0.13 unter Windows 10

Artikel empfehlen

Detaillierte Erläuterung der MySQL-Benutzerrechteverwaltung

Inhaltsverzeichnis Vorwort: 1. Einführung in die ...

Installation und Bereitstellung des MySQL Routers

Inhaltsverzeichnis 01 Einführung in MySQL Router ...

Fallstudie zu JavaScript-Ereignisschleifen

Ereignisschleife in js Da JavaScript ein Single-T...

Allgemeine Tags in XHTML

Was sind XHTML-Tags? XHTML-Tag-Elemente sind die ...

So führen Sie das Springboot-Projekt im Docker aus

1. Klicken Sie unten in IDEA auf Terminal und geb...

Das Vue-Projekt realisiert Anmelde- und Registrierungseffekte

In diesem Artikelbeispiel wird der spezifische Co...

Der Grund, warum MySQL den B+-Baum als zugrunde liegende Datenstruktur verwendet

Wir alle wissen, dass die zugrunde liegende Daten...

Linux Redis-Sentinel-Konfigurationsdetails

herunterladen Download-Adresse: https://redis.io/...

js regulärer Ausdruck Lookahead und Lookbehind und nicht erfassende Gruppierung

Inhaltsverzeichnis Kombinieren von Lookahead und ...

Tudou.com Frontend-Übersicht

1. Arbeitsteilung und Prozess <br />Bei Tud...