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
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:8088 \
--user 10001:10001 \
-v "$PWD/dat-cms-data:/data" \
-e PORT=8088 \
-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-cmsDatenbank
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
Stimmen Sie Containerport und probes auf den Dienstport ab und binden Sie das Datenverzeichnis mit Schreibzugriff für den Benutzer ohne root-Rechte ein. Fügen Sie Tokens und Datenbankverbindungsdaten über Secrets ein.
securityContext:
runAsNonRoot: true
runAsUser: 10001
runAsGroup: 10001
containers:
- name: dat-cms
image: sarolab/dat-cms
ports: [{ containerPort: 8088 }]
readinessProbe: { httpGet: { path: /health, port: 8088 } }
livenessProbe: { httpGet: { path: /health, port: 8088 } }