DAT CMS
DAT CMS erstellt Zertifikate, speichert sie in einer Datenbank und übermittelt die passenden Zertifikate an ausstellende und prüfende Dienste. Das Protokollverhalten beschreibt die DAT-CMS-Spezifikation.
Laufzeitkonfiguration erstellen
Dienst zur Verwaltung von DAT-Zertifikaten
Server
Ausführungsbefehl
Datenbank
DAT-Zertifikat
Zugriffskontrolle
Mit Docker ausführen
Docker und Podman verwenden im Container immer Port 80; veröffentlichen Sie den Host-Port mit -p 8088:80. PORT gilt nur für eigenständige Binärdateien (Standard: 8088). Führen Sie den Container als Benutzer ohne root-Rechte aus. Binden Sie bei SQLite ein beschreibbares Datenverzeichnis ein. Übergeben Sie Tokens und Datenbankpasswörter über einen Mechanismus zur Einbindung von Secrets statt über den Befehlsverlauf.
docker run --rm --name dat-cms -p 8088:80 \
--user 10001:10001 \
-v "$PWD/dat-cms-data:/data" \
-e DB_URI='sqlite:/data/data.db' \
-e TOKEN_MASTER='replace-with-a-secret' \
-e TOKEN_CERT_FULL='replace-with-a-secret' \
-e TOKEN_CERT_VERIFY='replace-with-a-secret' \
sarolab/dat-cms:4.7.1Datenbank
Konfigurieren Sie mit DB_URI eine Verbindung zu SQLite, PostgreSQL oder MySQL. MariaDB verbindet sich über das MySQL-Protokoll. CMS speichert Ergebnisse von Zertifikatsabfragen als Snapshot im Cache und stellt bei einem vorübergehenden Fehler der Speicheraktualisierung weiterhin den letzten erfolgreichen Snapshot bereit.
DB_CACHE_SECS legt das Aktualisierungsintervall des Snapshot fest, DB_QUERY_TIMEOUT_SECS begrenzt die Aktualisierungsabfragen. Existiert kein erfolgreicher Snapshot und kann der Speicher nicht gelesen werden, gibt der Dienst DAT_STORE_UNAVAILABLE zurück.
Zugriffsrollen
| Umgebungsvariable | Berechtigung | Verwendet von |
|---|---|---|
TOKEN_MASTER | Zertifikate registrieren und geschützte Version abrufen | Betrieb |
TOKEN_CERT_FULL | Vollständige Zertifikate abrufen | DAT-ausstellende Dienste |
TOKEN_CERT_VERIFY | Zertifikate nur zur Prüfung abrufen | Prüf- und Entschlüsselungsdienste |
Jede Variable akzeptiert durch Kommas getrennte alphanumerische Tokens. Ist die Tokenliste einer Rolle leer, werden ihre endpoints geöffnet und eine Warnung protokolliert.
Zertifikate erstellen
Die master-Rolle registriert ein Zertifikat mit Signaturalgorithmus, Verschlüsselungsalgorithmus, Ausbreitungsverzögerung, Ausstellungszeitraum und TTL. Während der Ausbreitungsverzögerung synchronisieren die Dienste das neue Zertifikat, bevor es ausstellungsfähig wird.
Clientintegration
- Verwenden Sie für ausstellende Dienste das vollständige Token und den endpoint für vollständige Zertifikate.
- Verwenden Sie für Prüfdienste das Prüftoken und die verify-only-Option.
- Prüfen Sie das Ergebnis der ersten Synchronisierung. Muss der Start fehlschlagen, rufen Sie die API zur sofortigen Synchronisierung auf.
- Schließen Sie den Manager bei aktivierter automatischer Synchronisierung während der Anwendungsbeendigung.
Die Bibliotheksleitfäden beschreiben builder und Beendigungsverhalten der einzelnen Sprachen.
Betriebsprüfungen
/healthund/version/apimelden den Zustand ohne Authentifizierung./versionerfordert das master token, wenn diese Rolle konfiguriert ist.- Erfassen Sie Protokolle aus Standardausgabe und Standardfehlerausgabe.
- Leiten Sie Beendigungssignale weiter und lassen Sie Datenbank und scheduler genug Zeit zum Schließen.
Kubernetes
Containerport, Probes und Service targetPort bleiben auf 80. Ändern Sie den Zugriffsport über Service port. Gewähren Sie NET_BIND_SERVICE zum Binden an Port 80 ohne root. Binden Sie ein beschreibbares Datenverzeichnis ein und übergeben Sie Tokens und Datenbankzugangsdaten über Secrets.
securityContext:
runAsNonRoot: true
runAsUser: 10001
runAsGroup: 10001
containers:
- name: dat-cms
image: sarolab/dat-cms:4.7.1
securityContext:
capabilities:
drop: ["ALL"]
add: ["NET_BIND_SERVICE"]
ports: [{ containerPort: 80 }]
readinessProbe: { httpGet: { path: /health, port: 80 } }
livenessProbe: { httpGet: { path: /health, port: 80 } }