This commit is contained in:
2026-05-12 19:25:14 +02:00
commit 0f3173d93e
93 changed files with 11865 additions and 0 deletions
+64
View File
@@ -0,0 +1,64 @@
# smgw-pki-automator
Automatisierungs-Tool für die Smart-Meter-Gateway (SMGW) PKI-Prozesse in einer
Test-/Labor-Umgebung. Erzeugt Schlüsselmaterial in einem HSM, beantragt
Zertifikate bei einer Sub-CA gemäß **BSI TR-03129-4**, erzeugt signierte
Initial-Konfigurationen gemäß **BSI TR-03109-1** und überwacht
Zertifikatslaufzeiten gemäß den Vorgaben der SM-PKI Certificate Policy.
## Ziel
- Asynchrone `RequestCertificate`-Aufrufe an die Test-Sub-CA (mTLS, SOAP).
- Asynchroner Callback-Endpunkt zur Annahme fertiger Zertifikate.
- Generierung signierter `iconfig.xml` + `iconfig.sig`, verpackt in
`iconfig.tar`.
- Periodische Prüfung auf ablaufende Zertifikate (Standard: 30 Tage vor Ablauf)
und automatische Erneuerung.
- Alerting per SMTP bei Fehlern.
## Architektur
Hexagonale Architektur (Ports & Adapters). Die fachliche Kernlogik
(`src/domain/`) kennt keine Infrastruktur. Sie spricht ausschließlich gegen
Ports (`src/ports/`). Konkrete Implementierungen liegen in `src/adapters/`.
Details: [`../docs/architecture.md`](../docs/architecture.md).
## Projektstruktur
```
src/
├── domain/ Geschäftslogik, Entities (Certificate, Gateway)
├── ports/ Traits (Inbound/Outbound) — Schnittstellen
├── adapters/ Konkrete Impl.: HSM, Sub-CA, SQLite, SMTP, Clock
├── builders/ Builder für SOAP-Requests und iconfig.xml
├── app.rs Composition Root (Dependency Injection)
└── main.rs Tokio-Runtime, Tracing, Boot
```
## Dokumentation
- [`../docs/architecture.md`](../docs/architecture.md) — Hexagonale Architektur, Ports & Adapters, Datenflüsse.
- [`../docs/bsi-compliance.md`](../docs/bsi-compliance.md) — Mapping BSI-Vorgaben → Code (TR-03129-4, TR-03109-1, SM-PKI CP).
- [`../docs/development.md`](../docs/development.md) — Lokales Setup (SoftHSM2-Container, mTLS-Testzertifikate, Build & Run).
## Quickstart
```bash
cargo check
cargo run
```
Für die volle Lab-Umgebung siehe [`../docs/development.md`](../docs/development.md).
## Status
Skeleton. Ports und Domäne stehen. Adapter sind Stubs, die `not implemented`
zurückgeben. Reihenfolge der Umsetzung siehe
[`../docs/architecture.md`](../docs/architecture.md#umsetzungsreihenfolge).
## Sicherheitshinweis
Dieses Tool ist **ausschließlich** für Test- und Labor-Umgebungen gedacht. Der
SoftHSMv2 erfüllt die "Security Level 1"-Anforderung der SM-PKI CP nur für
Entwicklungszwecke; für Produktion ist ein zertifiziertes HSM zwingend.