Inhaltsverzeichnis

Scenarij 3.5: Izdajanje Wildcard certifikata

Kategorija: Izdajanje certifikatov
Kompleksnost: ⭐⭐⭐⭐ (Visoka)
Predpogoji: Nadzor domene, Intermediate-CA
Predviden čas: 15-20 minut


Opis

Ta scenarij opisuje izdajanje Wildcard certifikata (*.example.com). Wildcard certifikati zaščitijo vse poddomene ene domene z enim samim certifikatom.

Prednosti:

Slabosti:


Pravila Wildcard

Vzorec Pokriva NE pokriva
*.example.com www.example.com, api.example.com example.com, sub.api.example.com
*.api.example.com v1.api.example.com api.example.com

Pomembno: *.example.com NE pokriva example.com (brez poddomene)! Vedno dodajte obe kot SAN.


Primer kode (C#)

using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ;
 
using var ctx = PqCryptoContext.Initialize();
 
var caCert = ctx.LoadCertificate("intermediate-ca.crt.pem");
var caKey = ctx.LoadPrivateKey("intermediate-ca.key.pem", "CaPassword!");
 
// Par ključev za Wildcard
using var wildcardKey = ctx.GenerateKeyPair(PqAlgorithm.MlDsa65);
 
var dn = new DnBuilder()
    .AddCN("*.example.com")
    .AddO("Example GmbH")
    .AddC("DE")
    .Build();
 
// Ustvarjanje CSR
var csr = ctx.CreateCertificateRequest(
    wildcardKey, dn,
    new ExtBuilder()
        // Wildcard + korenska domena
        .SubjectAlternativeName(new[] {
            "dns:*.example.com",
            "dns:example.com"
        })
        .Build()
);
 
// Izdajanje Wildcard certifikata
var wildcardCert = ctx.IssueCertificate(
    csr,
    issuerCert: caCert,
    issuerKey: caKey,
    serialNumber: ctx.GenerateSerialNumber(),
    validDays: 365,
    extensions: new ExtBuilder()
        .BasicConstraints(ca: false, critical: true)
        .KeyUsage(KeyUsageFlags.DigitalSignature | KeyUsageFlags.KeyEncipherment)
        .ExtendedKeyUsage(ExtKeyUsage.ServerAuth)
        .SubjectKeyIdentifier(csr.PublicKey)
        .AuthorityKeyIdentifier(caCert)
        .CrlDistributionPoint("http://crl.example.com/intermediate.crl")
        .Build()
);
 
wildcardCert.ToPemFile("wildcard.crt.pem");
wildcardKey.ToEncryptedPemFile("wildcard.key.pem", "SecurePassword!");

Večnivojski Wildcard

Za več ravni poddomen kombinirajte več Wildcardov:

.SubjectAlternativeName(new[] {
    "dns:example.com",
    "dns:*.example.com",          // www, api, app, itd.
    "dns:*.dev.example.com",      // dev1.dev, dev2.dev, itd.
    "dns:*.staging.example.com"   // staging okolja
})

Varnostni nasveti

Tveganja Wildcard certifikatov:

  • Kompromitacija prizadene VSE poddomene
  • Zasebni ključ je potreben na več mestih
  • Preklic prizadene vse storitve

Najboljše prakse:


Povezani scenariji

Povezava Scenarij Opis
Alternativa 3.1 Strežniški certifikat Posamezen certifikat
Alternativa 2.3 Multi-SAN CSR Eksplicitni SAN-i
Naslednji korak 10.1 TLS strežnik Namestitev

« ← 3.4 S/MIME certifikat | ↑ Pregled certifikatov | 4. Upravljanje certifikatov → »


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