Zertifikate mit verkürzter Gültigkeitsdauer ausstellen

Manchmal ist es erforderlich, Zertifikate mit einer kürzeren Gültigkeitsdauer auszustellen, als sie in der Zertifikatvorlage konfiguriert ist. Vielleicht möchte man deshalb nicht gleich die Zertifikatvorlage umkonfigurieren oder eine weitere Zertifikatvorlage erstellen.

Wie wird das Ablaufdatum eines ausgestellten Zertifikats ermittelt?

Für die Festlegung des Ablaufdatums eines Zertifikats ist das Policy Modul der Zertifizierungsstelle zuständig. Das Ablaufdatum eines ausgestellten Zertifikate (NotAfter Attribut) bestimmt sich aufgrund folgender Bedingungen:

  1. Die in der zugehörigen Zertifikatvorlage definierte Gültigkeitsdauer.
  2. Der auf der jeweiligen Zertifizierungstelle konfigurierte Maximalwert (ValidityPeriod, ValidityPeriodUnits in der Registrierung der Zertifizierungsstelle).
  3. Der verbleibende Gültigkeitszeitraum des Zertifizierungsstellen-Zertifikats.

Das Ablaufdatum des ausgestellten Zertifikats wird auf den jeweils kürzesten Zeitpunkt gesetzt.

Kann ein Antragsteller das Ablaufdatum bestimmen oder verkürzen?

Es ist möglich, eine vierte Bedingung zu aktivieren, welche es dem Antragsteller ermöglicht, beim Einreichen der Zertifikatanforderung an die Zertifizierungsstelle über entsprechende Attribute ein gewünschtes Enddatum oder eine gewünschte Gültigkeitsdauer anzugeben.

Diese Methode kann nur zum Verkürzen der Zertifikatgültigkeit eingesetzt werden. Eine Verlängerung der vorgesehen Zertifikatgültigkeit ist nicht möglich, in einem solchen Fall werden die Attribute von der Zertifizierungsstelle ignoriert.

Damit diese Attribute ausgewertet werden können, muss die Zertifizierungsstelle zunächst konfiguriert werden, diese anzuwenden. Dies erfolgt über das Flag EDITF_ATTRIBUTEENDDATE, welches im Policy-Modul der Zertifizierungsstelle konfiguriert werden muss. Auf ins Active Directory integrierten Zertifizierungsstelen ist dieses Flag in der Standardeinstellung nicht aktiviert.

Ist das Flag nicht gesetzt, können die Attribute zwar angegeben werden, werden aber nicht von der Zertifizierungsstelle verarbeitet. In der Standardeinstellung ist das Flag auf einer ins Active Directory integrierten Zertifizierungsstelle (engl. Enterprise Certification Authority) nicht aktiviert.

Kann ich das Flag gefahrlos aktivieren?

Aufgrund der zuvor beschriebenen Einschränkungen bei der Verarbeitung der Attribute ist es nur möglich, das Zertifikat noch restriktiver ausgestellt zu bekommen. Daher kann es gefahrlos aktiviert werden. Auch für Microsoft Intune ist das Setzen dieses Flags offizielle Voraussetzung.

Wie wird das Flag aktiviert?

Die aktuelle Einstellung kann abgefragt werden mit folgendem Befehl:

certutil -v -getreg Policy\Editflags

Aktiviert werden kann das Flag mit folgendem Befehl:

certutil -setreg Policy\Editflags +EDITF_ATTRIBUTEENDDATE

Deaktiviert werden kann das Flag mit folgendem Befehl:

certutil -setreg Policy\Editflags -EDITF_ATTRIBUTEENDDATE

Der Zertifizierungsstellen-Dienst muss anschließend neu gestartet werden, damit die Änderung wirksam wird.

Angeben des Ablaufdatums beim Einreichen der Zertifikatanforderung

Beim Einreichen der Zertifikatanforderung können nun entsprechende Attribute angegeben werden. Name und Wert werden durch Doppelpunkt voneinander getrennt. Mehrere Attribute hintereinander werden durch einen Zeilenumbruch ("\n") voneinander getrennt.

WertBeschreibung
ExpirationDateDatum im wie im RFC 2616 definierten Format.
ValidityPeriodMinutes,Hours,Days,Weeks,Months,Years. Muss zusammen mit "ValidityPeriodUnits" angegeben werden.
ValidityPeriodUnitsDie Anzahl für den Wert "ValidityPeriod". Muss zusammen mit "ValidityPeriod" angegeben werden.

Die Attribute können beim Einreichen via certreq.exe angegeben werden. Auch eine programmatische Angabe über die Submit Methode des ICertRequest Interface ist möglich.

Die Information wird in die Attribut-Tabelle des Datensatzes in der Zertifizierungsstellen-Datenbank übertragen:

Beispiele

Da Zertifikatanforderungen üblicherweise keine Information über die zu verwendende Zertifikatvorlage enthalten, wird ist diese im untenstehenden Beispiel mit dem Attribut "CertificateTemplate" auf dem gleichen Weg im angegeben.

Ausstellen eines Zertifikats mit einem Jahr Gültigkeit.

certreq ^
-config "ca02.intra.adcslabor.de\ADCS Labor Issuing CA 1" ^
-attrib "CertificateTemplate:ADCSLaborWebServer\nValidityPeriod:Years\nValidityPeriodUnits:1" ^
-submit "test.csr"

Ausstellen eines Zertifikats, welches am 01.10.2021 ablaufen soll.

certreq ^
-config "ca02.intra.adcslabor.de\ADCS Labor Issuing CA 1" ^
-attrib "CertificateTemplate:ADCSLaborWebServer\nExpirationDate:Fri, 1 Oct 2021 00:00:00 GMT" ^
-submit "test.csr"

Kann ein Antragsteller auch ein anderes Startdatum beantragen?

Das Windows Defaul Policy Modul kennt kein Attribut, um das Startdatum (NotBefore Attribut) eines Zertifikats anzugeben.

Die Funktion ist jedoch seit Version 1.2 des TameMyCerts Policy Moduls über ein "StartDate" Attribut, welches analog zum bestehenden Mechanismus arbeitet, enthalten.

certreq ^
-config "ca02.intra.adcslabor.de\ADCS Labor Issuing CA 1" ^
-attrib "CertificateTemplate:ADCSLaborWebServer\nStartDate:Tue, 1 Mar 2022 00:00:00 GMT" ^
-submit "Typical_WebServer.req"

Damit ist es möglich, den Gültigkeitszeitraum eines Zertifikats auf einen exakten Zeitraum festzulegen, beispielsweise für kurzfristige Zugänge zu IT-Ressourcen.

Weiterführende Links:

Externe Quellen

de_DEDeutsch