# 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.