Scenarij 4.1: Obnova certifikata (Renewal)

Kategorija: Upravljanje certifikatov
Kompleksnost: Srednja
Predpogoji: Obstoječi certifikat, isti ključ
Ocenjeni čas: 10-15 minut


Opis

Ta scenarij opisuje obnovo iztekajočega certifikata ob ohranitvi obstoječega para ključev. Obnova je smiselna, če ključ ni ogrožen in je moč ključa še zadostna.

Obnova proti ponovni izdaji ključa:

Vidik Obnova Ponovna izdaja
Par ključev Isti Nov
CSR Opcijsko nov Obvezno nov
Subject Lahko se prilagodi Lahko se prilagodi
Razlog Iztek Ogroženost, nadgradnja

Potek dela

flowchart LR LOAD[Nalaganje starega certifikata] --> CHECK[Preverjanje izteka] CHECK --> CSR[CSR z istim ključem] CSR --> ISSUE[Nov certifikat] ISSUE --> DEPLOY[Namestitev] DEPLOY --> REVOKE[Preklic starega] style ISSUE fill:#e8f5e9


Primer kode (C#)

using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ;
 
using var ctx = PqCryptoContext.Initialize();
 
// Nalaganje obstoječega certifikata in ključa
var oldCert = ctx.LoadCertificate("server.crt.pem");
var existingKey = ctx.LoadPrivateKey("server.key.pem", "KeyPassword!");
 
// Nalaganje CA
var caCert = ctx.LoadCertificate("intermediate-ca.crt.pem");
var caKey = ctx.LoadPrivateKey("intermediate-ca.key.pem", "CaPassword!");
 
// Preverjanje ali je obnova smiselna
var daysUntilExpiry = (oldCert.NotAfter - DateTime.UtcNow).Days;
if (daysUntilExpiry > 90)
{
    Console.WriteLine($"Certifikat se velja {daysUntilExpiry} dni.");
}
 
// Ustvarjanje CSR z obstoječim ključem
var csr = ctx.CreateCertificateRequest(
    existingKey,
    oldCert.SubjectName,  // Prevzem Subject
    ctx.GetExtensions(oldCert)  // Prevzem Extensions
);
 
// Izdaja novega certifikata
var newCert = ctx.IssueCertificate(
    csr,
    issuerCert: caCert,
    issuerKey: caKey,
    serialNumber: ctx.GenerateSerialNumber(),  // Nova serijska!
    validFrom: DateTime.UtcNow.AddDays(-1),    // Prekrivanje
    validDays: 365,
    extensions: new ExtBuilder()
        .BasicConstraints(ca: false, critical: true)
        .KeyUsage(KeyUsageFlags.DigitalSignature | KeyUsageFlags.KeyEncipherment)
        .ExtendedKeyUsage(ExtKeyUsage.ServerAuth)
        .SubjectKeyIdentifier(existingKey.PublicKey)  // Isti SKI!
        .AuthorityKeyIdentifier(caCert)
        .CrlDistributionPoint("http://crl.example.com/intermediate.crl")
        .Build()
);
 
// Shranjevanje
newCert.ToPemFile("server-renewed.crt.pem");
 
Console.WriteLine("Certifikat obnovljen:");
Console.WriteLine($"  Stara serijska: {oldCert.SerialNumber}");
Console.WriteLine($"  Nova serijska: {newCert.SerialNumber}");
Console.WriteLine($"  Nov datum izteka: {newCert.NotAfter:yyyy-MM-dd}");

Samodejno preverjanje obnove

// Preverjanje vseh certifikatov v shrambi
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)  // Se ni potekel
            .OrderBy(c => c.NotAfter)
            .ToList();
    }
    finally
    {
        store.Close();
    }
}
 
// Uporaba
using var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
var expiring = GetExpiringCertificates(store, warningDays: 30);
 
foreach (var cert in expiring)
{
    Console.WriteLine($"OPOZORILO: {cert.Subject} poteče {cert.NotAfter:d}");
}

Panožni cikli obnove

Panoga Tipičen cikel Predčasnost obnove Posebnost
Standardni IT 1 leto 30 dni Priporočena avtomatizacija
Energetika/SCADA 3-5 let 90 dni Upoštevati vzdrževalna okna
Zdravstvo 1-2 leti 60 dni Zahtevana revizijska sled
Avtomobilska 2-3 leta 180 dni Načrtovanje OTA posodobitev

Najboljše prakse

Priporočila za obnovo:

  • Načrtujte čas prekrivanja (stari certifikat še 1-7 dni veljaven po obnovi)
  • Implementirajte samodejni nadzor
  • Prekličite stari certifikat šele po uspešni namestitvi
  • Subject Key Identifier ostane isti (olajša sledenje)

Kdaj NE obnavljati:


Povezani scenariji

Povezava Scenarij Opis
Alternativa 4.2 Ponovna izdaja Nov ključ
Naslednji korak 6.4 Preklic Stari certifikat
Povezano 4.4 Varnostna kopija Varnostna kopija pred obnovo

« ← Pregled upravljanja | ↑ Scenariji | 4.2 Ponovna izdaja → »


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: dne 30.01.2026 ob 07:43