Szenario 4.1: Zertifikat-Erneuerung (Renewal)
Kategorie: Zertifikate verwalten
Komplexität: ⭐⭐⭐ (Mittel)
Voraussetzungen: Bestehendes Zertifikat, gleicher Schlüssel
Geschätzte Zeit: 10-15 Minuten
Beschreibung
Dieses Szenario beschreibt die Erneuerung eines ablaufenden Zertifikats unter Beibehaltung des bestehenden Schlüsselpaars. Renewal ist sinnvoll, wenn der Schlüssel nicht kompromittiert wurde und die Schlüsselstärke noch ausreichend ist.
Renewal vs. Rekey:
| Aspekt | Renewal | Rekey |
|---|---|---|
| Schlüsselpaar | Gleich | Neu |
| CSR | Optional neu | Pflicht neu |
| Subject | Kann angepasst werden | Kann angepasst werden |
| Grund | Ablauf | Kompromittierung, Upgrade |
Workflow
flowchart LR
LOAD[Altes Zertifikat laden] --> CHECK[Ablauf prüfen]
CHECK --> CSR[CSR mit gleichem Key]
CSR --> ISSUE[Neues Zertifikat]
ISSUE --> DEPLOY[Deployment]
DEPLOY --> REVOKE[Altes widerrufen]
style ISSUE fill:#e8f5e9
Code-Beispiel (C#)
using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ; using var ctx = PqCryptoContext.Initialize(); // Bestehendes Zertifikat und Schlüssel laden var oldCert = ctx.LoadCertificate("server.crt.pem"); var existingKey = ctx.LoadPrivateKey("server.key.pem", "KeyPassword!"); // CA laden var caCert = ctx.LoadCertificate("intermediate-ca.crt.pem"); var caKey = ctx.LoadPrivateKey("intermediate-ca.key.pem", "CaPassword!"); // Prüfen ob Renewal sinnvoll ist var daysUntilExpiry = (oldCert.NotAfter - DateTime.UtcNow).Days; if (daysUntilExpiry > 90) { Console.WriteLine($"Zertifikat noch {daysUntilExpiry} Tage gültig."); } // CSR mit bestehendem Schlüssel erstellen var csr = ctx.CreateCertificateRequest( existingKey, oldCert.SubjectName, // Subject übernehmen ctx.GetExtensions(oldCert) // Extensions übernehmen ); // Neues Zertifikat ausstellen var newCert = ctx.IssueCertificate( csr, issuerCert: caCert, issuerKey: caKey, serialNumber: ctx.GenerateSerialNumber(), // Neue Serial! validFrom: DateTime.UtcNow.AddDays(-1), // Überlappung validDays: 365, extensions: new ExtBuilder() .BasicConstraints(ca: false, critical: true) .KeyUsage(KeyUsageFlags.DigitalSignature | KeyUsageFlags.KeyEncipherment) .ExtendedKeyUsage(ExtKeyUsage.ServerAuth) .SubjectKeyIdentifier(existingKey.PublicKey) // Gleicher SKI! .AuthorityKeyIdentifier(caCert) .CrlDistributionPoint("http://crl.example.com/intermediate.crl") .Build() ); // Speichern newCert.ToPemFile("server-renewed.crt.pem"); Console.WriteLine("Zertifikat erneuert:"); Console.WriteLine($" Alte Serial: {oldCert.SerialNumber}"); Console.WriteLine($" Neue Serial: {newCert.SerialNumber}"); Console.WriteLine($" Neues Ablaufdatum: {newCert.NotAfter:yyyy-MM-dd}");
Automatische Renewal-Prüfung
// Alle Zertifikate im Store prüfen public IEnumerable<X509Certificate2> GetExpiringCertificates( X509Store store, int warningDays = 30) { store.Open(OpenFlags.ReadOnly); try { return store.Certificates .Where(c => c.NotAfter <= DateTime.UtcNow.AddDays(warningDays)) .Where(c => c.NotAfter > DateTime.UtcNow) // Noch nicht abgelaufen .OrderBy(c => c.NotAfter) .ToList(); } finally { store.Close(); } } // Verwendung using var store = new X509Store(StoreName.My, StoreLocation.LocalMachine); var expiring = GetExpiringCertificates(store, warningDays: 30); foreach (var cert in expiring) { Console.WriteLine($"WARNUNG: {cert.Subject} läuft ab am {cert.NotAfter:d}"); }
Branchenspezifische Renewal-Zyklen
| Branche | Typischer Zyklus | Renewal-Vorlauf | Besonderheit |
|---|---|---|---|
| Standard IT | 1 Jahr | 30 Tage | Automatisierung empfohlen |
| Energie/SCADA | 3-5 Jahre | 90 Tage | Wartungsfenster beachten |
| Healthcare | 1-2 Jahre | 60 Tage | Audit-Trail erforderlich |
| Automotive | 2-3 Jahre | 180 Tage | OTA-Update Planung |
Best Practices
Renewal-Empfehlungen:
- Überlappungszeit einplanen (altes Zertifikat 1-7 Tage nach Renewal noch gültig)
- Automatisches Monitoring implementieren
- Altes Zertifikat erst nach erfolgreichem Deployment widerrufen
- Subject Key Identifier bleibt gleich (erleichtert Tracking)
Wann NICHT erneuern:
Verwandte Szenarien
| Beziehung | Szenario | Beschreibung |
|---|---|---|
| Alternative | 4.2 Rekey | Neuer Schlüssel |
| Nächster Schritt | 6.4 Widerrufen | Altes Zertifikat |
| Verwandt | 4.4 Backup | Vor Renewal sichern |
« ← Verwaltung-Übersicht | ↑ Szenarien | 4.2 Rekey → »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: den 29.01.2026 um 15:13