
Reine PQC-Zwei-Ebenen-PKI-Hierarchie unter Verwendung von ML-DSA-65 (NIST FIPS 204) auf EJBCA Community Edition – Root-CA + Sub-CA mit CRL und OCSP
Eine praktische Implementierung von NIST FIPS 204 (ML-DSA) in einer Zwei-Ebenen-PKI-Hierarchie mit EJBCA Community Edition.
📖 Vollständige Anleitung: Building a Post-Quantum PKI: How I Signed a Root CA and Sub CA Using ML-DSA on EJBCA
Eine vollständige reine PQC-PKI-Hierarchie, die auf zwei separaten virtuellen Maschinen läuft, jede mit einem eigenen EJBCA-Container:
VM 1 — Root CA
└─ ML-DSA-65 self-signed Root CA
└─ CRL published and reachable
VM 2 — Sub CA
└─ ML-DSA-65 Sub CA signed by Root CA
└─ CRL published and reachable
└─ OCSP responder active
Jedes Zertifikat in der Kette – Root-CA, Sub-CA – wird ausschließlich mit ML-DSA-65 (NIST FIPS 204) signiert. Kein RSA. Kein ECDSA. Reine PQC von Ende zu Ende.
ML-DSA (ehemals CRYSTALS-Dilithium) ist der von NIST standardisierte Post-Quanten-Digitale-Signatur-Algorithmus gemäß FIPS 204. Das Dilithium3-Parameterset (ML-DSA-65) wurde für dieses Labor ausgewählt – es bietet 128-Bit-Post-Quanten-Sicherheit und ist die empfohlene Allzweck-Option für die meisten Bereitstellungen.
ejbca-pqc-lab/
├── README.md
├── root-ca/
│ └── setup-lab.sh # Run on VM1 — sets up the Root CA machine
└── sub-ca/
└── setup-lab.sh # Run on VM2 — sets up the Sub CA machine
chmod +x setup-lab.sh
sudo ./setup-lab.sh
Nach Abschluss rufen Sie die Admin-Oberfläche auf unter:
https://<VM1_IP>:8443/ejbca/adminweb/
Importieren Sie superadmin.p12 aus dem Container in Ihren Browser:
docker cp ejbca:/opt/ejbca/p12/superadmin.p12 ~/superadmin.p12
Standardpasswort: ejbca
Folgen Sie dann dem Medium-Artikel, um die Root-CA manuell zu konfigurieren.
chmod +x setup-lab.sh
sudo ./setup-lab.sh
Nach Abschluss rufen Sie die Admin-Oberfläche auf unter:
https://<VM2_IP>:8443/ejbca/adminweb/
Importieren Sie superadmin.p12 auf dieselbe Weise, folgen Sie dann dem Medium-Artikel, um die Sub-CA zu konfigurieren.
ejbca-data-Volumedocker-compose.ymlDie gesamte EJBCA-Konfiguration erfolgt manuell über die Admin-Oberfläche – Zertifikatsprofile, Crypto-Tokens, CA-Erstellung, CRL-Einstellungen und OCSP. Dies ist beabsichtigt. Das Skript bringt die Plattform zum Laufen. Der Medium-Artikel dokumentiert jede manuelle Entscheidung und deren Begründung.
| Komponente | CA |
|---|
ACME – Das ACME-Protokoll (RFC 8555) unterstützt ML-DSA nicht zur Kontoschlüssel-Authentifizierung. Es sind nur RSA und ECDSA erlaubt. Die Einbindung von ACME würde einen klassischen Kontoschlüssel erfordern, was die reine PQC-Geschichte unterbrechen würde. Die IETF arbeitet an einem PQC-ACME-Entwurf. Dieses Labor wird aktualisiert, sobald dieser abgeschlossen ist.
Browservertrauen – Noch erkennt kein großer Browser-Vertrauensspeicher ML-DSA. Dies ist ein privates PKI-Labor, keine öffentlich vertrauenswürdige Hierarchie. Dies ist erwartet und korrekt.
Mohammad Amin Kokash Sicherheitsingenieur GitHub · Medium
MIT
| Status |
|---|
| CRL | Root CA | ✅ |
| CRL | Sub CA | ✅ |
| OCSP | Sub CA | ✅ |
| OCSP | Root CA | ❌ Nicht anwendbar |