证书服务在加载 key recovery agent 证书时出错。
Active Directory 证书服务 (AD CS) 需要 key recovery agent 证书、交换 (XCHG) 证书和密钥才能支持密钥存档。对于公钥基础设施而言,key recovery agent 证书、XCHG 证书以及创建这些证书所需的加密服务提供程序 (CSP) 是否正常工作至关重要。
配置适当的 key recovery agent 证书数量
请确保证书颁发机构 (CA) 有适当数量的有效的 key recovery agent 证书。需要的 key recovery agent 证书数量在证书颁发机构管理单元的“恢复代理”选项卡上设置。
要执行此过程,您必须拥有管理 CA 的权限,或者您必须被委派了适当的权限。
要确认 key recovery agent 证书的具体问题,请执行以下操作:
在托管 CA 的计算机上,单击“开始”,指向“管理工具”,然后单击“证书颁发机构”。
右键单击 CA 名称,然后单击“属性”。
单击“恢复代理”选项卡。
请检查 key recovery agent 证书的状态列。如果一个或多个证书被标识为“过期”或“无效”,请移除过期或无效的 key recovery agent 证书,并注册和分配新的证书。
如果所有这些证书都未发现任何问题,请将每个证书导出至一个 .cer 文件,然后打开命令提示窗口,对每个文件运行以下命令,以检查有效性和吊销状态:certutil -verify,然后按 Enter。
或者如果您的有效 key recovery agent 证书比指定的证书数少,也可以转到“恢复代理”选项卡,并减少所需 key recovery agent 的数量。
有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkID=95698。
要确认密钥存档和恢复是否正常,请执行以下操作:
在托管 CA 的计算机上,单击“开始”,指向“管理工具”,然后单击“证书颁发机构”。
在控制台树中,右键单击证书颁发机构 (CA),然后单击“属性”。
单击“恢复代理”选项卡。
确认列出的所有 key recovery agent 证书均“有效”。
在证书模板容器中,确认已在“请求处理”选项卡中为加密证书配置了“把使用者的加密私钥存档” 选项。
打开一个用户帐户的“证书”管理单元,该用户帐户需具有根据此证书模板注册证书的权限。
在控制台树中,右键单击“个人”,指向“所有任务”,然后单击“申请新证书”,以启动“证书注册”向导。
根据加密模板注册一个证书,然后确认注册是否成功完成且没有报错。
注册完成后,打开“证书颁发机构”管理单元。
在控制台树中,单击“颁发的证书”。
找到刚才颁发的证书条目,然后将“存档的密钥”列添加到管理单元显示列表中。
确认“是”一字显示在刚才颁发的证书的“存档的密钥”列中。
Target | Microsoft.Windows.CertificateServices.CARole.2016 | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 83 | ||
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.2016.CertSvcEvents.83" 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">83</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="AlertMessageID887fa092475a4f92804af124cf8eff1c"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>