证书服务无法发布证书吊销列表 (CRL)。
证书颁发机构 (CA) 和公钥基础结构 (PKI) 最重要的安全功能之一是向客户端提供用于确定是否应该信任某个证书的信息。此时管理员需要迅速吊销尚未达到计划到期日期的不受信任的证书,并在证书吊销列表 (CRL) 中发布此信息。监视并解决与 CRL 发布和可用性相关的问题是 PKI 安全的一个重要方面。
启用 AD CS 以发布证书吊销列表
此事件日志消息的可能解决方法包括:
如果事件日志消息指定的 Active Directory 位置采用轻型目录访问协议 (LDAP) 地址格式,请确认证书颁发机构 (CA) 是否对此位置有写入权限。对此进行确认时,请按照“确认 Active Directory CRL 分配点权限”部分的过程进行操作。
检查事件日志消息中提到的任何文件位置的访问控制列表,以确认 CA 计算机是否对这些位置具有写入权限。为此,请按照“确认 CRL 分配点权限”部分的过程进行操作。
按照“检查网络连接”部分的过程检查 CA 与域控制器之间的网络连接。
解决了所有的网络和权限问题后,使用“发布新 CRL”部分的过程发布新的 CRL。
如果仍无法发布新的 CRL,请按照“确认已配置 CRL 分配点的有效性”部分的过程确认 CRL 分配点是否有效。
要执行这些过程,您必须拥有管理 CA 权限,或者您必须被委派了适当的权限。
确认 Active Directory CRL 分配点权限
要确认 Active Directory CRL 分配点权限,请执行以下操作:
在已安装 Active Directory 管理工具的计算机上,单击“开始”,指向“管理工具”,然后单击“Active Directory 站点和服务”。
在“视图”菜单上,单击“显示服务节点”。
双击 Services,然后双击 Public Key Services。
右键单击 AIA,然后单击“属性”。
单击“安全性”选项卡,并确认 CA 是否对此位置有写入权限。
确认文件位置 CRL 分配点权限
要确认文件位置 CRL 分配点权限,请执行以下操作:
单击“开始”,键入用于发布 CRL 的文件共享地址,然后按 ENTER。
右键单击文件共享,然后单击“属性”。
单击“安全性”选项卡,并确认 CA 是否对此位置有写入权限。
检查网络连接
要确定 CA 与域控制器之间是否存在网络连接问题,请执行以下操作:
在托管 CA 的计算机上打开命令提示窗口。
键入 ping <server_FQDN>,然后按 ENTER,其中 server_FQDN 是域控制器的完全限定域名(FQDN)。如果您可以连接到域控制器,则您会接收到类似以下内容的答复:
来自 IP_address 的回复:字节=32 时间=3ms TTL=59
来自 IP_address 的回复:字节=32 时间=20ms TTL=59
来自 IP_address 的回复:字节=32 时间=3ms TTL=59
来自 IP_address 的回复:字节=32 时间=6ms TTL=59 3。
在命令提示符下,键入 ping <IP_address> (其中,<IP_address> 是域控制器的 IP 地址),然后按 ENTER。
如果可以通过 IP 地址成功连接到域控制器,但无法通过 FQDN 连接到域控制器,则表明域名系统 (DNS) 可能存在问题。
如果无法通过 IP 地址成功连接到域控制器,则表明网络连接存在问题。请检查并解决所有硬件问题,如网络卡出现故障或网络电缆断开连接,以及与防火墙配置 “Internet 协议安全性 (IPsec)” 配置相关的任何事件日志错误。
发布新的 CRL
要使用证书颁发机构管理单元发布新的 CRL,请执行以下操作:
单击“开始”,指向“管理工具”,然后单击“证书颁发机构”。
右键单击“吊销的证书”,指向“所有任务”,然后单击“发布”以发布新的 CRL。
要使用 Certutil 命令行工具发布新的 CRL,请执行以下操作:
打开命令提示符窗口。
要将 CRL 发布到所有配置的 CRL 发布位置,请键入 certutil -CRL,然后按 ENTER。
若要将 CRL 直接发布到 Active Directory 位置,请键入 certutil -dspublish "<crlname.crl>" ldap:///CN=<CA name>,CN=<CA hostname>,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=<contoso>,DC=<com>?certificateRevocationList?base?objectClass=cRLDistributionPoint,然后按 ENTER。
使用 CRL 文件名替换 crlname.crl ,使用 CA 名称及运行 CA 的主机的名称替换 CA 名称和 CA 主机名,使用 Active Directory 域的命名空间替换 contoso 和 com。
确认已配置的 CRL 分配点的有效性
要确认已配置 CRL 分配点的有效性,请执行以下配置:
单击“开始”,指向“管理工具”,然后单击“证书颁发机构”。
右键单击 CA 的名称,然后单击“属性”。
单击“扩展名”选项卡。记下已选中“发布 CRL 到该位置”复选框的 CRL 分配点的位置。
您还可以在 CA 上打开命令提示符窗口并运行命令 certutil -getreg ca\crlpublicationurls,以此确定配置的 CRL 分配点 URL。
要确认证书吊销列表 (CRL) 发布过程是否正常,请对最近颁发的最终实体(用户或计算机)证书执行以下操作:
在连接网络的计算机上打开命令提示符。
键入 certutil -url <cert.cer>,然后按 ENTER。
将 <cert.cer> 替换为通过使用“证书导出向导”导出证书所创建的证书文件的名称。
在显示的对话框中的“检索”下,单击“CRL (来自 CDP)”,然后再次单击“检索”。
确认所有列出的已检索 CRL 分发点的状态均为“已验证”。
Target | Microsoft.Windows.CertificateServices.CARole.2016 | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 65 | ||
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.65" 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">65</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="AlertMessageIDd664f0fa5e3944d587fc8230b91b51bb"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>