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

CSS-Implementierungscode für horizontale und vertikale Fortschrittsbalken

Manchmal ist es schön, ein paar nette Scrollbar-E...

Methode zum Schreiben von bedingten Kommentaren und Beispielcode

Als Front-End-Ingenieure müssen wir mit dem IE ve...

Detaillierte Erklärung der gemischten Vererbung in Vue

Inhaltsverzeichnis Die Auswirkungen der gemischte...

Tiefgreifendes Verständnis des Linux-Lastausgleichs LVS

Inhaltsverzeichnis 1. LVS-Lastausgleich 2. Grundl...

So konfigurieren Sie MGR Single Master und mehrere Slaves in MySQL 8.0.15

1. Einleitung MySQL Group Replication (kurz MGR) ...

Detaillierte Erklärung der verfügbaren Umgebungsvariablen in Docker Compose

Mehrere Teile von Compose befassen sich in irgend...

Vue realisiert Bildwechseleffekt

In diesem Artikelbeispiel wird der spezifische Co...

Entdecken Sie, wie Ihnen eine LED den Einstieg in den Linux-Kernel erleichtert

Inhaltsverzeichnis Vorwort LED-Trigger Entdecken ...

So dekomprimieren Sie mehrere Dateien mit dem Befehl „unzip“ in Linux

Lösung für das Problem, dass in Linux kein Entpac...

CSS3 beschleunigt und verzögert Übergänge

1. Verwenden Sie die Geschwindigkeitskontrollfunk...

Vue realisiert Web-Online-Chat-Funktion

In diesem Artikelbeispiel wird der spezifische Co...