Skip to main content

Installation mit Docker

Installation von Step-CA mit Docker

1. Docker Compose Konfiguration

Erstellen Sie eine docker-compose.yml Datei mit folgendem Inhalt. Diese Konfiguration initialisiert eine neue Certificate Authority beim ersten Start automatisch.

services:
  step-ca:
    image: smallstep/step-ca
    container_name: step-ca
    restart: unless-stopped
    ports:
      - "9000:9000"
    volumes:
      - ./step-ca/data:/home/step
    environment:
      # Name der CA (erscheint im Feld 'Issuer' der Zertifikate)
      - DOCKER_STEPCA_INIT_NAME=MeineInterneCA
      # Adressen, unter denen die CA erreichbar ist (Wichtig für TLS-Verbindung zur CA)
      - DOCKER_STEPCA_INIT_DNS_NAMES=localhost,step-ca,ca.meine-domain.local
      # Passwort zum Schutz des Root-Schlüssels (Sicher aufbewahren!)
      - DOCKER_STEPCA_INIT_PASSWORD=dein-sicheres-passwort
      # Name des Standard-Provisioners
      - DOCKER_STEPCA_INIT_PROVISIONER_NAME=admin

Hinweise zu den Variablen:

  • DOCKER_STEPCA_INIT_NAME: Der Anzeigename Ihrer CA.

  • DOCKER_STEPCA_INIT_DNS_NAMES: Hier müssen die Hostnamen oder IPs eingetragen werden, über die die CA selbst erreichbar ist.

  • DOCKER_STEPCA_INIT_PASSWORD: Schützt die Identität der CA. Geht dieses Passwort verloren, kann die CA nicht mehr gestartet werden.

2. Den Root-Fingerprint ermitteln

Der Fingerprint ist ein SHA-256 Hash des Root-Zertifikats. Er wird benötigt, um Clients (via step ca bootstrap) sicher mit der CA zu verbinden, ohne das Root-Zertifikat vorab manuell verteilen zu müssen.

Option A: Über die Container-Logs

Beim ersten Start (Initialisierung) gibt die CA den Fingerprint direkt aus:

docker compose logs step-ca | grep "fingerprint"

Beispielausgabe:

2026/02/26 07:15:41 [INFO] CA initialized with fingerprint: 8a5d3f...6c2b1e94a5e01

Option B: Über die metadata.json

Nach der Initialisierung speichert Step-CA den Fingerprint persistent ab. Basierend auf dem Volume-Mapping oben finden Sie die Datei hier:

./step-ca/data/config/metadata.json

{
  "fingerprint": "8a5d3f...6c2b1e94a5e01"
}

Option C: Manuelle Abfrage im laufenden Container

Falls die Logs nicht mehr verfügbar sind, kann der Fingerprint direkt aus dem Zertifikat berechnet werden:

docker exec step-ca step certificate fingerprint /home/step/certs/root_ca.crt

3. Verwendung des Fingerprints

Um einen Client (z. B. auf einem anderen Server) zu verbinden, nutzen Sie den Befehl:

step ca bootstrap --ca-url https://<ca-ip>:9000 --fingerprint <dein-fingerprint>