Wie jede Software unterliegen auch die Microsoft Active Directory Certificate Services bestimmten Grenzen, die durch ihr Design auferlegt sind.
Nicht so offensichtlich kann die Frage beantwortet werden, wie viele Alternative Antragstellernamen (engl. Subject Alternative Name, SAN) mit der Microsoft-Zertifizierungsstelle ausgestellt werden können.
Um dies herauszufinden, schreiben wir uns einen kleinen Test mit den PSCertificateEnrollment PowerShell Modul, welches wiederholt Zertifikate beantragt und dabei die Anzahl der alternativen Antragstellernamen schrittweise erhöht.
Import-Module PSCertificateEnrollment
1..1000 | ForEach-Object -Process {
$sans = @(1..$_ | % { "san-test-$_.intra.adcslabor.de" })
New-CertificateRequest -Subject "CN=A Test" -Dns $sans | Get-IssuedCertificate -ConfigString "CA02.intra.adcslabor.de\ADCS Labor Issuing CA 1" -CertificateTemplate "ADCSLaborWebServer"
}
Dies geht eine Weile gut, doch auf einmal werden die Zertifikatanträge abgelehnt.

Das letzte erfolgreich ausgestellte Zertifikat beinhaltet 127 alternative Antragstellernamen.

Die Zertifizierungsstelle meldet für alle weiteren Zertifikatanforderungen mit mehr alternativen Antragstellernamen, dass eine Feldgröße überschritten sei.

In der Ereignisanzeige finden wir das Ereignis mit ID 22 der Quelle Microsoft-Windows-CertificationAuthority mit gleichem Inhalt.

Wie sich zeigt ist die Zertifizierungsstelle nicht in der Lage, eine Datenbankzeile für den Zertifikatantrag zu erstellen, da die Feldgröße überschritten wurde.
Die Zertifikaterweiterungen werden in einem eigenen Feld in der Zertifizierungsstellen-Datenbank abgespeichert. Wie sich zeigt ist dieses Feld auf 4096 Byte beschränkt, was bei weiteren SANs überschritten wird.
Wir haben also unsere Frage falsch formuliert: Es gibt keine Beschränkung für die Anzahl der alternativen Antragstellernamen, jedoch für die Gesamt-Größe aller Zertifikaterweiterungen, von denen Subject Alternative Names eine von vielen anderen ist.
Dass in meinem Test genau 127 – eine in der IT-Welt andere Schlüssel nahelegende Zahl – SANs möglich waren, war mehr oder weniger Zufall. Die tatsächlich erreichbare Anzahl hängt von der Anzahl der Zeichen und weiterer Zertifikaterweiterungen im Zertifikatantrag ab, wie ein erneuter Test mit deutlich weniger Zeichen zeigt…

Dann speichere ich die Zertifikatanträge einfach nicht in der Datenbank
Von einem Leser habe ich die Anregung erhalten, dass es ja die Option gibt, die Zertifikatanträge nicht in der Zertifizierungsstellen-Datenbank zu speichern.
Diese Option ist in den meisten Fällen natürlich nicht sinnvoll, da entsprechende Zertifikate nicht zurückverfolgt und auch nicht widerrufen werden können.

Damit diese Option funktioniert, muss noch folgende globale Einstellung aktiviert werden:
certutil –setreg DBFlags +DBFLAGS_ENABLEVOLATILEREQUESTS
Nun sind noch einmal deutlich mehr SANs, respektive größere Zertifikaterweiterungen möglich, bevor wir letztendlich in die Limitierungen des MS-WCCE Protokolls laufen.

Das letzte erfolgreich ausgestellte Zertifikat ist ca. 90 Kilobyte groß.

Anmerkungen
Ich bin gespannt, ob die Limitierungen der Zertifizierungsstellen-Datenbank auch bei Aussagen zur künftig zu erwartenden Unterstützung von Post-Quanten-Kryptographie mit der Microsoft-Zertifizierungsstelle berücksichtigt wurden, da hier von deutlich größeren Zertifikaten ausgegangen werden kann.
Weiterführende Links:
- Das Datenbankschema der Zertifizierungsstellen-Datenbank
- Details zum Ereignis mit ID 22 der Quelle Microsoft-Windows-CertificationAuthority
- Grenzen der Microsoft Active Directory Certificate Services
Externe Quellen
- Don’t Believe the FUD – Microsoft PKI is Your Key to Crypto Agility (PKI Solutions LLC)
- How to Set Up a CA for Non-Persistent Certificate Processing (Microsoft)
- Field Report – Mitigating PKI Template Risks for Ephemeral Workloads and Desktop (PKI Solutions LLC)