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

Detailliertes Tutorial zur Installation des Quellcodes von CentOS6.9+Mysql5.7.18

Bei der Installation des Quellcodes von CentOS6.9...

Kompatibilitätsprobleme mit CSS3-Farbverlaufshintergründen

Wenn wir eine Hintergrundfarbe mit Farbverlauf er...

So verstehen Sie das Ref-Attribut von React genau

Inhaltsverzeichnis Überblick 1. Erstellen eines R...

Was ist ein MIME-TYP? MIME-Typen-Typensammlung

Was ist ein MIME-TYP? 1. Zunächst müssen wir verst...

JavaScript implementiert einen langen Bild-Scroll-Effekt

In diesem Artikel wird der spezifische Code für d...

Eine kurze Analyse des MySQL-Index

Ein Datenbankindex ist eine Datenstruktur, deren ...

MySQL 8.0.15 Installations- und Konfigurations-Tutorial unter Win10

Was ich kürzlich gelernt habe, beinhaltet Kenntni...

Was ist JavaScript Anti-Shake und Throttling

Inhaltsverzeichnis 1. Funktion Entprellung 1. Was...

Docker erstellt MySQL-Erklärung

1. MySQL-Image herunterladen Befehl: docker pull ...

Implementierung der Navigationsleiste und des Dropdown-Menüs in CSS

1. CSS-Navigationsleiste (1) Funktion der Navigat...

Util-Modul im node.js-Tutorial-Beispiel – detaillierte Erklärung

Inhaltsverzeichnis Ausgehend von der Typbeurteilu...