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

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

证书服务无法将一个 CA 证书添加到 Active Directory 中

Knowledge Base article:

摘要

Active Directory 证书服务 (AD CS) 要求对 Active Directory 域服务 (AD DS) 中的某些对象具有读取访问权限,在某些情况下还要求具有写入权限。如果无法访问这些 Active Directory 对象,则可能会妨碍 AD CS 启动。

解决方案

启用 AD CS 以将 CA 证书添加到 Active Directory 域服务

要启用 Active Directory 证书服务 (AD CS) 以将事件日志消息中标识的证书颁发机构 (CA) 证书添加到 Active Directory 域服务 (AD DS),请执行以下操作:

要执行此过程,必须拥有管理员成员身份,或者已向你委派了适当的权限。

确认基本 AD DS 容器和对象的权限

要确认 CA 具有 AD DS 容器及这些容器内对象的所需权限,请执行以下操作:

以下是托管 CA 的计算机需要的所有 Active Directory 权限。某些权限是通过证书发行者组中的成员存档的。

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

请确定 AIA 容器中是否存在 CA 证书

要查看 AD DS 的 AIA 容器中的内容,请执行以下操作:

手动发布 CA 证书

要将 CA 证书手动发布到 AD DS,请执行以下操作:

将 <CAcert.cer> 替换为证书文件的名称。“-f”标志可重新创建对象,即使其已被删除也是如此。

其他

要检查 CA 和 Active Directory 域服务 (AD DS) 之间的连接,请执行以下操作:

使用安装了 CA 的命名空间的名称替换 [域名]。

确认基本 AD DS 容器和对象的权限

要执行此过程,必须拥有管理员成员身份,或者已向你委派了适当的权限。

要确认 CA 具有 AD DS 容器以及这些容器内对象的所需权限,请执行以下操作:

以下是托管 CA 的计算机需要的所有 Active Directory 权限。某些权限是通过证书发行者组中的成员存档的。

Element properties:

TargetMicrosoft.Windows.CertificateServices.CARole.2016
CategoryEventCollection
EnabledTrue
Event_ID106
Event SourceMicrosoft-Windows-CertificationAuthority
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
RemotableTrue
Alert Message
AD CS Active Directory 域服务连接 - 无法添加 CA
事件说明:{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.106" 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">106</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="AlertMessageID4f12f8d124ed4ece99544c9a9730fa37"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>