Docker-Verbindung per HTTPS einrichten: Eine Schritt-für-Schritt-Anleitung

Um den Zustand von Docker über externe Systeme zu prüfen, ist es wichtig, Docker über HTTPS erreichbar zu machen. Mit dieser Anleitung zeige ich dir, wie du Docker per HTTPS verbinden kannst, indem du einen Docker-Container als Hilfsmittel nutzt. Diese Methode erleichtert die Einrichtung und sorgt für eine sichere Verbindung.

Schritt 1: Client-Zertifikat erstellen

Zuerst erstellen wir ein Client-Zertifikat. Dazu verwenden wir einen Docker-Container, der die benötigten Zertifikate generiert.

  • Erstelle ein Verzeichnis für die Zertifikate:
mkdir $(pwd)/.docker
  • Führe den folgenden Befehl aus, um das Zertifikat zu erstellen (Die Laufzeit ist hier auf 9999 Tage eingestellt):
docker run --rm -v $(pwd)/.docker:/certs \ -e CA_EXPIRE=9999 \ -e SSL_EXPIRE=9999 \ paulczar/omgwtfssl

Schritt 2: Zertifikate richtig einrichten

Nachdem die Zertifikate erstellt wurden, müssen wir deren Berechtigungen anpassen und sie an die richtige Stelle verschieben.

  • Erstelle ein Verzeichnis für die Docker-SSL-Zertifikate:
mkdir /etc/docker/ssl/
  • Kopiere das CA-Zertifikat:
cp ~/.docker/ca.pem /etc/docker/ssl/ca.pem
  • Passe die Berechtigungen an:
chown -R $USER ~/.docker

Schritt 3: Server-Zertifikat erstellen

Nun erstellen wir ein Server-Zertifikat. Dabei müssen wir die Host-IP und den Hostnamen angeben.

  • Führe den folgenden Befehl aus, wobei du die Host-IP unter SSL_IP und den Hostnamen unter SSL_DNS einträgst:
docker run --rm -v /etc/docker/ssl:/server \
-v $(pwd)/.docker:/certs \
-e SSL_IP=127.0.0.1,172.20.1.x \
-e SSL_DNS=$HOSTNAME -e SSL_KEY=/server/key.pem \
-e SSL_CERT=/server/cert.pem \
-e CA_EXPIRE=9999 \
-e SSL_EXPIRE=9999 \
paulczar/omgwtfssl

Schritt 4: Docker-Konfiguration anpassen

Als nächstes passen wir die Docker-Konfigurationsdatei daemon.json an, um HTTPS zu aktivieren.

  • Öffne die Datei /etc/docker/daemon.json mit einem Texteditor:
nano /etc/docker/daemon.json
  • Füge den folgenden Inhalt hinzu:
{
  "hosts": [
    "unix:///var/run/docker.sock",
    "tcp://0.0.0.0:2376"
  ],
  "tlsverify": true,
  "tlscacert": "/etc/docker/ssl/ca.pem",
  "tlscert": "/etc/docker/ssl/cert.pem",
  "tlskey": "/etc/docker/ssl/key.pem"
}

    Schritt 5: Docker-Service konfigurieren und neu starten

    Zum Abschluss müssen wir den Docker-Service so konfigurieren, dass er die neuen Einstellungen verwendet, und ihn dann neu starten.

    • Bearbeite die Docker-Service-Konfiguration:
    sudo systemctl edit docker.service
    • Füge den folgenden Inhalt im oberen Bereich der Datei ein:
    [Service]
    ExecStart=
    ExecStart=/usr/bin/dockerd
    
    • Lade die Systemd-Daemons neu und starte Docker neu:
    systemctl daemon-reload
    systemctl restart docker

    Fazit

    Mit diesen Schritten hast du Docker erfolgreich über HTTPS erreichbar gemacht. Dies ermöglicht eine sichere Überwachung und Verwaltung deines Docker-Daemons über externe Systeme.

    Schreibe einen Kommentar

    Diese Seite ist durch reCAPTCHA und Google geschützt Datenschutz-Bestimmungen und Nutzungsbedingungen anwenden.

    Der Zeitraum für die reCAPTCHA-Überprüfung ist abgelaufen. Bitte laden Sie die Seite neu.