Upravljanje certifikatov

Kompaktni primeri za upravljanje certifikatov. → Podrobnosti: Scenariji upravljanja


Podaljšanje certifikata (isti ključ)

var caCert = new X509Certificate2("intermediate-ca.pfx", "geslo");
var oldCert = new X509Certificate2("server.pfx", "geslo");
 
var privateKey = oldCert.GetECDsaPrivateKey();
 
var request = new CertificateRequest(
    oldCert.SubjectName, (ECDsa)privateKey, HashAlgorithmName.SHA384);
 
// Prevzem razširitev (razen SKI)
foreach (var ext in oldCert.Extensions)
    if (ext.Oid?.Value != "2.5.29.14")
        request.CertificateExtensions.Add(ext);
 
// Nova serijska številka
var serial = new byte[20];
RandomNumberGenerator.Fill(serial);
serial[0] &= 0x7F;
 
var renewedCert = request.Create(caCert,
    DateTimeOffset.UtcNow, DateTimeOffset.UtcNow.AddYears(1), serial);

Podrobnosti: Podaljšanje


Zamenjava ključa (nov ključ)

var oldCert = new X509Certificate2("server.crt");
using var newKey = ECDsa.Create(ECCurve.NamedCurves.nistP384);
 
var request = new CertificateRequest(
    oldCert.SubjectName, newKey, HashAlgorithmName.SHA384);
 
// Prevzem SAN-ov in EKU
if (oldCert.Extensions["2.5.29.17"] is { } san)
    request.CertificateExtensions.Add(san);
if (oldCert.Extensions["2.5.29.37"] is { } eku)
    request.CertificateExtensions.Add(eku);
 
// Ustvarjanje novega certifikata, preklic starega!

Podrobnosti: Zamenjava ključa


Ustvarjanje CRL

var caCert = new X509Certificate2("intermediate-ca.pfx", "geslo");
var crlBuilder = new CertificateRevocationListBuilder();
 
crlBuilder.AddEntry(
    serialNumber: new byte[] { 0x01, 0x23, 0x45 },
    revocationTime: DateTimeOffset.UtcNow,
    reason: X509RevocationReason.KeyCompromise);
 
var crl = crlBuilder.Build(caCert,
    crlNumber: BitConverter.GetBytes(1L),
    nextUpdate: DateTimeOffset.UtcNow.AddDays(7),
    HashAlgorithmName.SHA384);
 
File.WriteAllBytes("intermediate.crl", crl);

Podrobnosti: Ustvarjanje CRL


Kontrolni seznam

Pred iztekom (30 dni):

  • Načrtovanje podaljšanja
  • Odločitev za podaljšanje ali zamenjavo ključa

Pri kompromitaciji:

  • Takoj zamenjava ključa (nov ključ!)
  • Preklic starega certifikata
  • Posodobitev CRL

« ← Kratka referenca | → Scenariji upravljanja (podrobnosti) »


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

Zuletzt geändert: dne 30.01.2026 ob 08:21