使用网络策略服务器 (NPS) 对网络访问强制实施基于证书的身份验证时,必须配置证书吊销列表 (CRL),确保只接受有效的证书。 CRL 用于检查证书颁发机构 (CA) 是否在数字证书的计划到期日期之前吊销了该证书。 在 NPS 中,配置在身份验证过程中检查 CRL,以确保仅使用有效的证书进行网络访问。 配置 NPS CRL 是实现安全网络访问基础结构的重要步骤。
Prerequisites
要将设备设置为 NPS 服务器,需要“网络策略和访问服务”角色。 有关详细信息,请参阅安装或卸载角色、角色服务或功能。
了解 NPS CRL 注册表设置
NPS 的注册表设置可以在以下注册表路径中配置,并输入为 DWORD 条目,值为 0 表示 已禁用,为 1 表示 已启用:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\PPP\EAP\13\
默认情况下,以下键设置为 0 。
| Name | Description |
|---|---|
| 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 注册表设置
Warning
错误编辑注册表会严重损坏您的系统。 在更改注册表之前,应备份计算机上任何有价值的数据。
可使用注册表编辑器 (regedit.exe)、命令提示符或 PowerShell 编辑注册表。 以下示例介绍了启用 NoRevocationCheck 注册表设置,并且相同的步骤适用于启用或禁用相关的 CRL 设置。
- 注册表编辑器
- 命令提示符
- PowerShell
以下步骤允许在设备上启用 NoRevocationCheck :
- 在桌面上,选择“ 开始”,键入 注册表编辑器,右键单击 “注册表编辑器 ”,然后选择“ 以管理员身份运行”。
- 在 注册表编辑器中,导航到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\PPP\EAP\13。
- 在顶部窗格中,选择 “编辑>新>DWORD> 类型 NoRevocationCheck”,然后按 Enter。
- 双击新注册表项,将值更改为 1,然后选择“ 确定”。
若要禁用此项,请将值从 1 更改为 0。
要在 NPS 服务器上手动更新 CRL,请在命令提示符或 PowerShell 中运行以下命令:
certutil -urlcache * delete
certutil -setreg chain\ChainCacheResyncFiletime @now