证书服务未启动:注册表问题。
Active Directory 证书服务 (AD CS) 会在注册表中记录关键配置设置,如果此信息损坏或被删除,则 Active Directory 证书服务可能无法启动或正常工作。
修复 ValidityPeriod 注册表项
默认情况下,证书颁发机构 (CA) 注册表配置信息位于 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\CA 名称下。
如果事件日志消息表明 ValidityPeriod 注册表项无效,您需使用正确的信息更新注册表项。
此注册表项的位置是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\CA 名称\ValidityPeriod。
此值的有效字符串包括“Seconds”、“Minutes”、“Hours”、“Days”、“Weeks”、“Months”和“Years”。
要执行此过程,您必须拥有本地管理员成员身份,或者您必须被委派了适当的权限。
警告:注册表编辑不当可能会严重损坏您的系统。更改注册表之前,您应备份任何有价值的数据。
要解决域注册表相关的问题,请执行以下操作:
在托管 CA 的计算机上,单击“开始”,键入 regedit,然后按 ENTER。
转至 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\CA 名称\ValidityPeriod,更正您找到的无效有效期设置。
单击“开始”,指向“管理工具”,然后单击“证书颁发机构”。
右键单击 CA 名称,然后单击“重新启动”。
要确认证书颁发机构 (CA) 注册表设置,请执行以下操作:
对 CA 的注册表设置进行更改后,单击“开始”,指向“管理工具”,然后单击“证书颁发机构”。
选择 CA 名称,然后单击“重新启动”。
单击“开始”,键入 cmd,然后按 ENTER。
键入 certutil -getreg ca\security,然后按 ENTER。
如果没有其他损坏的设置,则将显示“-getreg 命令已成功完成”。
Target | Microsoft.Windows.CertificateServices.CARole.6.3 | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 20 | ||
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.20" 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">20</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="AlertMessageID1ed82a0b5585405a86ce20748a8aa821"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>