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-caca,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:

  • Bei Name

    DOCKER_STEPCA_INIT_NAME: sollteDer 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 NameCA. 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 angegebenenzu werden,verbinden, derohne späterdas auchRoot-Zertifikat invorab manuell verteilen zu müssen.

Option A: Über die Container-Logs

Beim ersten Start (Initialisierung) gibt die CA den ZertifikatenFingerprint angezeigtdirekt werden. 

DNS_NAMES, hier sollten alle Domains eingetragen werden, für welche später Zertifikate ausgestellt werden. Password sollte dem allgemeinen Standard entsprechen, dieses Passwort ist sicher aufzubewahren, es verschlüsselt die Daten und schützt den Privatkey.

2. Fingerprint

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

beim Start kann im LogNach der Initialisierung speichert Step-CA den Fingerprint gesehenpersistent werden,ab. dieserBasierend wirdauf beidem VerwendungVolume-Mapping vonoben stepfinden benötigtSie umdie dasDatei https Zertifikat zu validieren, so lange noch kein root Zertifikat lokal vorliegt.hier:

[Dein-Docker-Volume]./step-ca/data/config/metadata.json

In der Datei kann der Fingerprint auch gefunden werden,

{
  "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>