Wie sind die Kompatibilitätseinstellungen für Zertifikatvorlagen technisch abgebildet?

Seit den Verwaltungstools für die Zertifikatdienste in Windows Server 2012 kann man beim Konfigurieren einer Zertifikatvorlage die gewünschte Kompatibilität für die Zertifizierungsstelle und Zertifikatempfänger auswählen.

Nachfolgend wird diese Funktion näher beschrieben, sowie auf mögliche Auswirkungen in der Praxis eingegangen.

Für eine Übersicht, welche Optionen bei Veränderung der einzelnen Kompatibilitätseinstellungen verfügbar werden siehe Artikel "Übersicht über die Verfügbarkeit von Optionen bei Veränderung der Kompatibilitätseinstellungen einer Zertifikatvorlage".

Die Kompatibilitätseinstellungen sind als Bitmaske im Attribut msPKI-Private-Key-Flag in der Zertifikatvorlage abgebildet.

Das msPKI-Private-Key-Flag zwei untergeordnete Attribute:

  • CTPRIVATEKEY_FLAG_SERVERVERSION_SHIFT
  • CTPRIVATEKEY_FLAG_CLIENTVERSION_SHIFT

Mögliche Werte für CTPRIVATEKEY_FLAG_SERVERVERSION_SHIFT

BetriebssystemFlagWert
StandardeinstellungTEMPLATE_SERVER_VER_NONE0
Windows Server 2003TEMPLATE_SERVER_VER_200310000 (65536)
Windows Server 2008TEMPLATE_SERVER_VER_200820000 (131072)
Windows Server 2008 R2TEMPLATE_SERVER_VER_2008R230000 (196608)
Windows Server 2012TEMPLATE_SERVER_VER_WIN840000 (262144)
Windows Server 2012 R2TEMPLATE_SERVER_VER_WINBLUE50000 (327680)
Windows Server 2016TEMPLATE_SERVER_VER_THRESHOLD60000 (393216)

Mögliche Werte für CTPRIVATEKEY_FLAG_CLIENTVERSION_SHIFT

BetriebssystemFlagWert
StandardeinstellungEMPLATE_CLIENT_VER_NONE0
Windows XPTEMPLATE_CLIENT_VER_XP1000000 (16777216)
Windows VistaTEMPLATE_CLIENT_VER_VISTA2000000 (33554432)
Windows 7TEMPLATE_CLIENT_VER_WIN73000000 (50331648)
Windows 8TEMPLATE_CLIENT_VER_WIN84000000 (67108864)
Windows 8.1TEMPLATE_CLIENT_VER_WINBLUE5000000 (83886080)
Windows 10TEMPLATE_CLIENT_VER_THRESHOLD6000000 (100663296)

Abfrage des Attributs für eine Zertifikatvorlage

Mit folgendem Kommandozeilenbefehl können die aktuell für eine Zertifikatvorlage konfigurierten Werte für die beiden Flags abgefragt werden:

certutil -v -template {Name-der-Vorlage} | findstr VERSION_SHIFT

Der Vorlagenname entspricht dem Namen des Active Directory Objektes, nicht dem Anzeigenamen.

Alternativ ist es auch möglich, das msPKI-Private-Key-Flag direkt auf dem pKICertificateTemplate Objekt im Active Directory abzufragen und auszuwerten.

certutil -v -ds "{DN-des-Template-Objekts}"

Beispiel:

certutil -v -ds "CN=ADCSLaborBenutzer,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=intra,DC=adcslabor,DC=de"

Prüft man direkt nach einer Änderung an der Zertifikatvorlage sollte man den clientseitigen Cache mit certutil -pulse aktualisieren, um die aktuellsten Informationen angezeigt zu bekommen.

Weiterführende Links:

de_DEDeutsch