具有源 CertificationAuthority 和 ID 102 的事件的收集规则

Microsoft.Windows.CertificateServices.CARole.2016.CertSvcEvents.102 (Rule)

证书服务无法创建交叉证书。

Knowledge Base article:

摘要

当更新了根证书颁发机构 (CA) 证书后,原始根证书和更新后的根证书在公钥层次结构中仍然同样重要。原始根 CA 证书仍然是层次结构的最终信任基础,可帮助验证在原始层次结构下发出的所有证书的证书链。续订的根 CA 证书为层次结构中从续订日期开始颁发的所有证书提供了信任基础。

为了支持这些方案,还创建了一对交叉 CA 证书,以便在原始根证书和更新后的根证书之间建立信任关系:

如果更改了 CA 密钥,独立的 CA 将生成自签名的交叉证书。在每个根证书的生存期重叠的时间段内,每次密钥切换时会生成一个交叉证书。

.

解决方案

当使用新密钥更新根证书颁发机构 (CA) 证书时,CA 将自动在旧 CA 证书和新 CA 证书之间生成交叉证书。如果在交叉证书签名时发生加密失败,可以通过更正扩展名冲突来解决此问题。否则,将启用 CryptoAPI 2.0 诊断功能来收集其他疑难解答信息。

要执行这些过程,您必须拥有管理 CA 权限,或者您必须被委派了适当的权限。

“解决扩展名冲突”

要解决扩展名冲突,请执行以下操作:

注意:有关配置自定义证书申请的信息,请参阅“Advanced Certificate Enrollment and Management”( http://go.microsoft.com/fwlink/?LinkID=74577)。

启用 CryptoAPI 2.0 诊断功能

要启用 CryptoAPI 2.0 诊断功能,请执行以下操作:

如果扩展名正确,且 CA 证书验证和链接也正确,则在 CA 重新启动时应自动生成缺失的交叉 CA 证书。

其他

要验证在 CA 证书更新期间证书颁发机构 (CA) 是否能够创建交叉证书对其自身证书进行认证,请执行以下操作:

Element properties:

TargetMicrosoft.Windows.CertificateServices.CARole.2016
CategoryEventCollection
EnabledTrue
Event_ID102
Event SourceMicrosoft-Windows-CertificationAuthority
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
RemotableTrue
Alert Message
AD CS 交叉证书 - 扩展名冲突
事件说明:{0}
Event LogApplication

Member Modules:

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

Source Code:

<Rule ID="Microsoft.Windows.CertificateServices.CARole.2016.CertSvcEvents.102" Enabled="true" Target="CSDisc!Microsoft.Windows.CertificateServices.CARole.2016" 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">102</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="AlertMessageID45e4d639a5ed47f4b4f4ae5914594727"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>