~~NOTOC~~
====== 4. Certificate Management ======
**Scenarios:** 4 \\
**FFI Functions:** ~30 \\
**Status:** ⏳ Planned
This category covers all scenarios for managing the certificate lifecycle. Renewal, rekey, archival, and backup of certificates.
----
===== Scenarios =====
^ ID ^ Scenario ^ Description ^ Complexity ^ Status ^
| [[.:renewal|4.1]] | Certificate Renewal | Extend expiring certificate | ⭐⭐⭐ | ⏳ |
| [[.:rekey|4.2]] | Key Renewal (Rekey) | New key pair, new certificate | ⭐⭐⭐ | ⏳ |
| [[.:archivierung|4.3]] | Certificate Archival | Securely store expired certificates | ⭐⭐ | ⏳ |
| [[.:backup|4.4]] | Backup and Recovery | Backup certificates and keys | ⭐⭐⭐ | ⏳ |
----
===== Lifecycle =====
flowchart LR
subgraph ACTIVE["🟢 Active"]
NEW[Newly Issued]
INUSE[In Use]
end
subgraph RENEWAL["🔄 Renewal"]
RENEW[Renewal]
REKEY[Rekey]
end
subgraph END["⏹️ End"]
EXPIRE[Expired]
REVOKE[Revoked]
ARCHIVE[Archived]
end
NEW --> INUSE
INUSE --> RENEW --> INUSE
INUSE --> REKEY --> INUSE
INUSE --> EXPIRE --> ARCHIVE
INUSE --> REVOKE --> ARCHIVE
style INUSE fill:#e8f5e9
style REVOKE fill:#ffcdd2
----
===== Renewal vs Rekey =====
^ Operation ^ Key ^ Serial ^ Use Case ^
| **Renewal** | Same | New | Key still secure, only extend validity |
| **Rekey** | New | New | Compromise suspected, algorithm change |
**Best Practice:** During PQ migration, always perform rekey to switch from classical to ML-DSA.
----
===== Automation =====
^ Trigger ^ Action ^ Lead Time ^
| 30 days before expiry | Warning email | - |
| 14 days before expiry | Start auto-renewal | - |
| 7 days before expiry | Escalation | - |
| Expiry | Deactivate certificate | - |
----
===== Quick Start Code =====
==== Renewal ====
// Load existing certificate
var oldCert = ctx.LoadCertificate("server.crt.pem");
var privateKey = ctx.LoadPrivateKey("server.key.pem", password);
// Renewal: New certificate with same key
var csr = ctx.CreateCertificateRequest(privateKey, oldCert.Subject);
var newCert = ctx.IssueCertificate(csr, issuerCert, issuerKey, validDays: 365);
newCert.ToPemFile("server-renewed.crt.pem");
==== Rekey ====
// Generate new key pair (e.g., migration to ML-DSA)
using var newKey = ctx.GenerateKeyPair(PqAlgorithm.MlDsa65);
// CSR with new key, same subject
var csr = ctx.CreateCertificateRequest(newKey, oldCert.Subject);
var newCert = ctx.IssueCertificate(csr, issuerCert, issuerKey, validDays: 365);
// Securely destroy old key
oldKey.Dispose();
----
===== Related Categories =====
^ Category ^ Relationship ^
| [[.:zertifikate:start|3. Issue Certificates]] | New certificate for rekey |
| [[.:widerruf:start|6. Revocation]] | Revoke old certificate after rekey |
| [[.:schluessel:start|11. Key Management]] | Key rotation |
----
<< [[en:int:pqcrypt:szenarien:zertifikate:start|← 3. Issue Certificates]] | [[en:int:pqcrypt:szenarien:start|↑ Scenarios]] | [[.:validierung:start|5. Validation →]] >>
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//
{{tag>category management renewal rekey archival backup}}