Fehler beim Verarbeiten einer Anforderung durch Zertifikatsdienste.
Eine der primären Funktionen einer Zertifizierungsstelle ist das Auswerten von Zertifkatanforderungen von Clients sowie das Ausstellen von Zertifikaten für diese Clients, wenn die Zertifikate den vordefinierten Kriterien entsprechen. Für eine erfolgreiche Zertifikatregistrierung sind eine Reihe von Elementen erforderlich, bevor die Anforderung übermittelt wird: Zertifizierungsstelle (CA) mit gültigem CA-Zertifikat, ordnungsgemäß konfigurierte Zertifikatvorlagen, Clientkonten und Zertifikatanforderungen sowie eine Möglichkeit für den Client zum Übermitteln der Anforderung an die Zertifizierungsstelle, zum Überprüfen der Anforderung und zum Installieren des ausgestellten Zertifikats.
Beheben Sie Probleme, die die Verarbeitung von Zertifikatanforderungen verhindern.
Es gibt eine Reihe von Problemen, die die Verarbeitung von Zertifikatanforderungen verhindern können. Wenn die Ereignisprotokollnachricht nicht alle Informationen enthält, die zum Beheben des Problems erforderlich sind, können Ihnen zusätzliche Fehler und Warnungen, die vor oder nach dieser Ereignisprotokollnachricht empfangen wurden, möglicherweise bei der Ermittlung der Ursache helfen.
Gehen Sie wie folgt vor, um Probleme zu erkennen und zu beheben, die die Verarbeitung von Zertifikatanforderungen verhindern können:
Bestätigen Sie die Zertifikatskette für die Zertifizierungsstelle.
Generieren und veröffentlichen Sie neue Zertifikatsperrlisten.
Bestätigen Sie die konfigurierten Verteilungspunkte der Zertifikatsperrlisten.
Wenn das Problem durch diese Schritte nicht behoben wird, prüfen Sie die Warteschlange mit den fehlerhaften Anforderungen für die Zertifizierungsstelle auf Informationen zur Fehlerursache.
Zum Ausführen der folgenden Verfahren müssen Sie über die Berechtigung "Zertifizierungsstelle verwalten" verfügen, oder an Sie müssen die entsprechenden Berechtigungen delegiert worden sein.
Zertifikatskette für Zertifizierungsstelle bestätigen
So überprüfen Sie die Kette für die Zertifizierungsstelle
Klicken Sie auf "Start", geben Sie "mmc" ein, und drücken Sie dann die EINGABETASTE.
Wenn das Dialogfeld Benutzerkontensteuerung angezeigt wird, vergewissern Sie sich, dass die gewünschte Aktion angezeigt wird, und klicken Sie dann auf Weiter.
Klicken Sie im Menü "Datei" auf "Snap-In hinzufügen/entfernen", klicken Sie dann auf "Zertifikate" und anschließend auf "Hinzufügen".
Klicken Sie auf "Computerkonto", und klicken Sie dann auf "Weiter".
Wählen Sie den Computer aus, der die Zertifizierungsstelle hostet, klicken Sie auf "Fertig stellen" und dann auf "OK".
Wählen Sie die einzelnen Zertifizierungsstellenzertifikate in der Zertifikatskette aus, und klicken Sie dann auf "Zertifikat anzeigen".
Klicken Sie auf die Registerkarte "Details", und klicken Sie dann auf "In Datei kopieren", um den Zertifikatexport-Assistenten zu starten. Speichern Sie die einzelnen Zertifikate mit der Erweiterung CER.
Öffnen Sie eine Eingabeaufforderung, führen Sie den Befehl certutil -urlfetch -verify <CAcert.cer> für jedes Zertifizierungsstellenzertifikat aus, und drücken Sie dann die EINGABETASTE. Ersetzen Sie <CAcert.cer> durch den Namen der Zertifikatdatei einer Zertifizierungsstelle, die Sie in Schritt 7 gespeichert haben.
Verwenden Sie denselben Befehl für eine Zertifikatsdatei für ein Zertifikat einer Endeinheit (Benutzer oder Computer), das von der Zertifizierungsstelle ausgestellt wurde, um Zertifikatsperrlisten für die Zertifizierungsstelle sowie für ihre Kette zu bestätigen.
Beheben Sie alle in der Befehlszeilenausgabe angegebenen Probleme.
Neue Zertifikatsperrlisten generieren und veröffentlichen
Wenn die Befehlszeilenausgabe angibt, dass eine Sperrliste für eine Zertifizierungsstelle abgelaufen ist, generieren Sie für diese Zertifizierungsstelle neue Basis- und Deltasperrlisten und kopieren diese an die erforderlichen Speicherorte. Dazu müssen Sie möglicherweise eine Zertifizierungsstelle neu starten, die offline ist.
Prüfen Sie auf der Zertifizierungsstelle die aktuell veröffentlichte Zertifikatsperrliste. Standardmäßig werden Zertifikatsperrlisten von der Zertifizierungsstelle im Ordner %windir%\System32\CertSrv\CertEnroll erstellt. Wenn die derzeit an diesem Speicherort befindlichen Zertifikatsperrlisten abgelaufen oder ungültig sind, können Sie das folgende Verfahren verwenden, um eine neue Zertifikatsperrliste zu veröffentlichen.
So veröffentlichen Sie eine neue Zertifikatsperrliste mithilfe des Snap-Ins "Zertifizierungsstelle"
Klicken Sie auf dem Computer, der die Zertifizierungsstelle hostet, auf "Start", zeigen Sie auf "Verwaltung", und klicken Sie dann auf "Zertifizierungsstelle".
Wählen Sie die Zertifizierungsstelle aus, und erweitern Sie die Ordner unter dem Namen der Zertifizierungsstelle.
Klicken Sie mit der rechten Maustaste auf den Ordner "Gesperrte Zertifikate".
Klicken Sie auf "Alle Aufgaben", und klicken Sie dann auf "Veröffentlichen".
Sie können Zertifikatsperrlisten auch über eine Eingabeaufforderung generieren und veröffentlichen.
So veröffentlichen Sie eine Zertifikatsperrliste mithilfe des Befehlszeilentools "Certutil":
Klicken Sie auf dem Computer, der die Zertifizierungsstelle hostet, auf "Start", geben Sie "cmd" ein, und drücken Sie die EINGABETASTE.
Geben Sie "certutil -CRL" ein, und drücken Sie die EINGABETASTE.
Wenn eine Zertifikatsperrliste als nicht verfügbar erkannt wird, aber eine gültige Sperrliste im lokalen Verzeichnis auf der Zertifizierungsstelle vorhanden ist, bestätigen Sie, dass die Zertifizierungsstelle eine Verbindung zum Verteilungspunkt der Sperrliste herstellen kann. Anschließend verwenden Sie die vorangehenden Schritte, um die Zertifikatsperrlisten erneut zu generieren und zu veröffentlichen.
Zertifikatsperrlisten können mithilfe des folgenden Befehls manuell für die Active Directory-Domänendienste veröffentlicht werden:
certutil -dspublish"<crlname.crl>" ldap:///CN=<CA name>,CN=<CA hostname>,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=<contoso>,DC=<com>?certificateRevocationList?base?objectClass=cRLDistributionPoint
Ersetzen Sie "crlname.crl" durch den Namen Ihrer Sperrlistendatei, <CA name> und <CA hostname> durch Ihren Zertifizierungsstellennamen und durch den "Zertifizierungsstellen-Hostname", auf dem diese Zertifizierungsstelle ausgeführt wird. Ersetzen Sie <contoso> und <com> durch den Namespace Ihrer Active Directory-Domäne.
Konfigurierte Verteilungspunkte der Zertifikatsperrlisten bestätigen
Prüfen Sie alle konfigurierten Verteilungspunkte der Zertifikatsperrlisten, um zu bestätigen, dass die Veröffentlichung erfolgreich ausgeführt wurde und neue Sperrlisten im Netzwerk verfügbar sind.
So prüfen Sie die konfigurierten Verteilungspunkte der Zertifikatsperrliste mithilfe des Snap-Ins "Zertifizierungsstelle"
Klicken Sie auf dem Computer, der die Zertifizierungsstelle hostet, auf "Start", zeigen Sie auf "Verwaltung", und klicken Sie dann auf "Zertifizierungsstelle".
Klicken Sie mit der rechten Maustaste auf den Namen der Zertifizierungsstelle, und klicken Sie dann auf "Eigenschaften".
Klicken Sie auf die Registerkarte "Erweiterungen".
Überprüfen Sie die konfigurierten Verteilungspunkte der Sperrliste, um die Richtigkeit der Informationen sicherzustellen.
So überprüfen Sie die URLs der Verteilungspunkte der Zertifikatsperrliste mithilfe von "Certutil":
Öffnen Sie ein Eingabeaufforderungsfenster auf der Zertifizierungsstelle.
Geben Sie den Befehl "certutil -getreg ca\crlpublicationurls" ein, und drücken Sie die EINGABETASTE.
Warteschlange für fehlerhafte Anforderungen auf der Zertifizierungsstelle überprüfen
So prüfen Sie die Warteschlange für fehlerhafte Anforderungen mithilfe des Snap-Ins "Zertifizierungsstelle"
Klicken Sie auf dem Computer, der die Zertifizierungsstelle hostet, auf "Start", zeigen Sie auf "Verwaltung", und klicken Sie dann auf "Zertifizierungsstelle".
Klicken Sie auf den Ordner "Fehlgeschlagene Anforderungen".
Suchen Sie nach fehlgeschlagenen Anforderungen, die zum oder um den Zeitpunkt des Ereignisses herum übermittelt wurden. Prüfen Sie dann die Spalten wie "Anforderung: Dispositionsmeldung", "Anforderung: Statuscode" und "Antragstellername" auf zusätzliche Diagnoseinformationen.
So überprüfen Sie fehlgeschlagene Anforderungen mithilfe von "Certutil":
Klicken Sie auf dem Computer, der die Zertifizierungsstelle hostet, auf "Start", geben Sie "cmd" ein, und drücken Sie die EINGABETASTE.
Geben Sie "certutil -view LogFail" ein, und drücken Sie die EINGABETASTE.
Geben Sie certutil -view -restrict requestID="<nnn>" ein, und drücken Sie die EINGABETASTE. Ersetzen Sie <nnn> durch die Anforderungs-ID einer der fehlgeschlagenen Anforderungen in der Ausgabe des Befehls "LogFail".
So bestätigen Sie, dass die Verarbeitung der Zertifikatanforderung ordnungsgemäß funktioniert
Klicken Sie auf Start, geben Sie certmgr.msc ein, und drücken Sie dann die EINGABETASTE.
Wenn das Dialogfeld Benutzerkontensteuerung angezeigt wird, vergewissern Sie sich, dass die gewünschte Aktion angezeigt wird, und klicken Sie dann auf Weiter.
Doppelklicken Sie in der Konsolenstruktur auf Eigene Zertifikate, und klicken Sie dann auf Zertifikate.
Zeigen Sie im Menü Aktion auf Alle Aufgaben, und klicken Sie dann auf Neues Zertifikat anfordern, um den Assistenten für die Zertifikatregistrierung zu starten.
Verwenden Sie den Assistenten, um eine Zertifikatanforderung für einen beliebigen verfügbaren Zertifikatstyp zu erstellen und zu übermitteln.
Bestätigen Sie unter Zertifikatinstallationsergebnisse, dass die Registrierung erfolgreich ausgeführt wurde und keine Fehler aufgetreten sind. Sie können auch auf Details klicken, um zusätzliche Informationen zum Zertifikat anzuzeigen.
Target | Microsoft.Windows.CertificateServices.CARole.6.2 | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 22 | ||
Event Source | Microsoft-Windows-CertificationAuthority | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | High | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
Alert | WriteAction | System.Health.GenerateAlert | Default |
WriteToCertSvcEvents | WriteAction | Microsoft.Windows.CertificateServices.CARole.CertSvcEvents.Publisher | Default |
WriteToDB | WriteAction | Microsoft.SystemCenter.CollectEvent | Default |
<Rule ID="Microsoft.Windows.CertificateServices.CARole.6.2.CertSvcEvents.22" Enabled="onEssentialMonitoring" Target="CSDisc!Microsoft.Windows.CertificateServices.CARole.6.2" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">22</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-CertificationAuthority</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="WriteToDB" TypeID="SC!Microsoft.SystemCenter.CollectEvent"/>
<WriteAction ID="WriteToCertSvcEvents" TypeID="Microsoft.Windows.CertificateServices.CARole.CertSvcEvents.Publisher"/>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>2</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="AlertMessageID515b77767c984710bc8f71a810107927"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>