Szenario 3.5: Wildcard-Zertifikat ausstellen

Kategorie: Zertifikate ausstellen
Komplexität: ⭐⭐⭐⭐ (Hoch)
Voraussetzungen: Domain-Kontrolle, Intermediate-CA
Geschätzte Zeit: 15-20 Minuten


Beschreibung

Dieses Szenario beschreibt die Ausstellung eines Wildcard-Zertifikats (*.example.com). Wildcard-Zertifikate sichern alle Subdomains einer Domain mit einem einzigen Zertifikat ab.

Vorteile:

  • Ein Zertifikat für alle Subdomains
  • Einfachere Verwaltung
  • Kosteneffizienter

Nachteile:

  • Höheres Risiko bei Kompromittierung
  • Deckt Root-Domain nicht ab
  • Nur eine Ebene

Wildcard-Regeln

Muster Deckt ab Deckt NICHT ab
*.example.com www.example.com, api.example.com example.com, sub.api.example.com
*.api.example.com v1.api.example.com api.example.com

Wichtig: *.example.com deckt example.com (ohne Subdomain) NICHT ab! Immer beide als SAN hinzufügen.


Code-Beispiel (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!");
 
// Schlüsselpaar für Wildcard
using var wildcardKey = ctx.GenerateKeyPair(PqAlgorithm.MlDsa65);
 
var dn = new DnBuilder()
    .AddCN("*.example.com")
    .AddO("Example GmbH")
    .AddC("DE")
    .Build();
 
// CSR erstellen
var csr = ctx.CreateCertificateRequest(
    wildcardKey, dn,
    new ExtBuilder()
        // Wildcard + Root-Domain
        .SubjectAlternativeName(new[] {
            "dns:*.example.com",
            "dns:example.com"
        })
        .Build()
);
 
// Wildcard-Zertifikat ausstellen
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!");

Multi-Level Wildcard

Für mehrere Subdomain-Ebenen mehrere Wildcards kombinieren:

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

Sicherheitshinweise

Risiken von Wildcard-Zertifikaten:

  • Kompromittierung betrifft ALLE Subdomains
  • Private Key wird an mehreren Stellen benötigt
  • Revocation betrifft alle Dienste

Best Practices:

  • Private Key zentral speichern (HSM)
  • Kurze Gültigkeit (max. 1 Jahr)
  • Separate Wildcard-Zertifikate für Prod/Dev/Staging
  • Monitoring für alle Subdomains

Verwandte Szenarien

Beziehung Szenario Beschreibung
Alternative 3.1 Server-Zertifikat Einzelnes Zertifikat
Alternative 2.3 Multi-SAN CSR Explizite SANs
Nächster Schritt 10.1 TLS-Server Deployment

« ← 3.4 S/MIME-Zertifikat | ↑ Zertifikate-Übersicht | 4. Zertifikate verwalten → »


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

Zuletzt geändert: den 29.01.2026 um 15:13