CA 证书链中有证书已吊销。
链或路径验证流程的作用是分层次处理最终实体(用户或计算机)证书和所有证书颁发机构 (CA) 证书,直到证书链在一个受信任的自签名证书处终止为止。通常该证书是一个根 CA 证书。如果 CA 证书的可用性、有效性和链验证出现问题,则 Active Directory 证书服务 (AD CS) 可能会启动失败。
在链中为已吊销的 CA 证书重新颁发证书
尽管证书颁发机构 (CA) 证书通常不会被吊销。要解决此问题,请执行以下操作:
确认 CA 证书已吊销。
咨询 CA 管理员该吊销是有意还是无意的。如果是有意的吊销证书,无需进行其他操作。
如果是无意的吊销,则必须通过注册或自动注册重新颁发 CA 证书和分支中的每个证书。
如果问题仍存在,启用 CryptoAPI 2.0 诊断功能以识别并解决可能引起问题的其他错误。
要执行这些过程,您必须拥有管理 CA 权限,或者您必须被委派了适当的权限。
确认 CA 证书已吊销
要确认 CA 证书是否已吊销,请执行以下操作:
打开命令提示符窗口。
键入 certutil -urlfetch -verify<CAcert.cer>,然后按 ENTER。
将 CAcert.cer 替换为 CA 证书文件的名称。
注册 CA 证书
要注册 CA 证书,请执行以下操作:
在托管 CA 的计算机上,单击“开始”,指向“管理工具”,然后单击“证书颁发机构”。
右键单击 CA 名称,选择“所有任务”,然后单击“申请 CA 证书”。
选择 CA 的申请文件和名称或托管父 CA 的计算机,以处理申请并完成注册。
安装 CA 证书完成后,您需要重新颁发使用已吊销 CA 证书颁发的所有证书。
启用 CryptoAPI 2.0 诊断功能
要启用 CryptoAPI 2.0 诊断功能,请执行以下操作:
在托管 CA 的计算机上,单击“开始”,指向“管理工具”,然后单击“事件查看器”。
在控制台树中,展开“事件查看器”、“应用程序和服务日志”、“Microsoft”、“Windows”、“CAPI2”。
右键单击“可操作”,然后单击“启用日志”。
单击“开始”,指向“管理工具”,然后单击“服务”。
右键单击“Active Directory 证书服务”,然后单击“重新启动”。
查看 CAPI2 诊断功能记录,了与该错误相关的信息。
要确认证书颁发机构 (CA) 证书和链是否有效,请执行以下操作:
在托管 CA 的计算机上,单击“开始”,键入 mmc,然后按 ENTER。
如果出现“用户帐户控制”对话框,请确认它显示的是所需操作,然后单击“继续”。
在“文件”菜单上,依次单击“添加/删除管理单元”、“证书”、“添加”。
单击“计算机”帐户,然后单击“下一步”。
单击“完成”,然后单击“确定”。
在控制台树中,单击“证书(本地计算机)”,然后单击“个人”。
请确认此存储中存在尚未到期的 CA 证书。
右键单击此证书,然后选择“导出”,以启动“证书导出向导”。
将该证书导出到名为 Cert.cer 的文件。
键入 Start、cmd,然后按 ENTER。
键入 certutil -urlfetch -verify <cert.cer>,然后按 ENTER。
如果没有报告验证、链生成或吊销检查错误,则说明链有效。
Target | Microsoft.Windows.CertificateServices.CARole.6.3 | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 51 | ||
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.3.CertSvcEvents.51" Enabled="onEssentialMonitoring" Target="CSDisc!Microsoft.Windows.CertificateServices.CARole.6.3" 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">51</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="AlertMessageIDec09b85c4b5c4b5c9753da70c2ab3dc7"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>