配置网络策略服务器证书吊销列表检查注册表设置

适用范围:Windows Server 2022、Windows Server 2019、Windows Server 2016

使用网络策略服务器 (NPS) 对网络访问强制实施基于证书的身份验证时,必须配置证书吊销列表 (CRL),确保只接受有效的证书。 CRL 用于检查证书颁发机构 (CA) 是否在数字证书的计划到期日期之前吊销了该证书。 在 NPS 中,配置在身份验证过程中检查 CRL,以确保仅使用有效的证书进行网络访问。 配置 NPS CRL 是实现安全网络访问基础结构的重要步骤。

先决条件

要将设备设置为 NPS 服务器,需要“网络策略和访问服务”角色。 有关详细信息,请参阅安装或卸载角色、角色服务或功能

了解 NPS CRL 注册表设置

可在以下注册表路径中配置 NPS 的注册表设置,并输入这些设置作为 DWORD 条目,值为 0 表示“已禁用”,为 1 表示“已启用”:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\PPP\EAP\13\

默认情况下,以下键设置为 0。

名称 描述
IgnoreNoRevocationCheck 禁用后,除非服务器完成对客户端证书链的吊销检查(包括根证书)并验证没有证书被吊销,否则 EAP-TLS 客户端无法连接。

启用后,NPS 允许 EAP-TLS 客户端进行连接,即使 NPS 不执行或无法完成对客户端证书链的吊销检查(不包括根证书)也是如此。

当证书不包含 CRL 分发点(例如非 Microsoft CA 颁发的证书)时,可以使用此项对客户端进行身份验证。
IgnoreRevocationOffline 禁用后,除非客户端可以完成对其证书链的吊销检查并验证没有证书被吊销,否则 NPS 不允许客户端进行连接。 当 NPS 无法连接到存储吊销列表的服务器时,证书无法进行吊销检查,且身份验证会失败。

启用后,NPS 允许 EAP-TLS 客户端进行连接(即使存储 CRL 的服务器在网络上不可用),并防止由于网络条件差而导致证书验证失败。
NoRevocationCheck 禁用后,会为 NPS CRL 启用证书吊销检查。 当客户端向 NPS 服务器提供证书时,服务器会检查查看证书是否已由发证 CA 吊销,然后才允许客户端连接到网络。 如果证书已被吊销,客户端将被拒绝访问。

启用后,NPS 会阻止 EAP-TLS 执行对客户端证书的吊销检查。 吊销检查验证客户端证书及其证书链中的证书没有被吊销。
NoRootRevocationCheck 禁用后,此项仅消除对客户端的根 CA 证书的吊销检查。 对客户端证书链的其余证书仍然执行吊销检查。

启用后,NPS 会阻止 EAP-TLS 执行对客户端根 CA 证书的吊销检查。

当证书不包含 CRL 分发点时,此项会对客户端进行身份验证。 另外,当证书吊销列表脱机或过期时,此项还可以阻止发生与证书相关的延迟。

编辑 NPS CRL 注册表设置

警告

错误编辑注册表会严重损坏您的系统。 在更改注册表之前,应备份计算机上任何有价值的数据。

可使用注册表编辑器 (regedit.exe)、命令提示符或 PowerShell 编辑注册表。 以下示例描述了如何启用 NoRevocationCheck 注册表设置,而且这些步骤适用于启用或禁用相关的 CRL 设置。

通过以下步骤,可在设备上启用 NoRevocationCheck:

  1. 在桌面上,选择“启动”,键入“注册表编辑器”,右键单击“注册表编辑器”,然后选择“以管理员身份运行”。
  2. 在“注册表编辑器”中,导航到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\PPP\EAP\13。
  3. 在顶部窗格中,选择“编辑”>“新建”>“DWORD”> 键入“NoRevocationCheck”,然后按 Enter。
  4. 双击新的注册表项,将值更改为 1,然后选择“确定”。

若要禁用此项,请将值从 1 更改为 0。

要在 NPS 服务器上手动更新 CRL,请在命令提示符或 PowerShell 中运行以下命令:

certutil -urlcache * delete
certutil -setreg chain\ChainCacheResyncFiletime @now