管理用于 NPS 的证书

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

如果部署基于证书的身份验证方法,例如可扩展身份验证协议-传输层安全性 (EAP-TLS)、受保护的可扩展身份验证协议-传输层安全性 (PEAP-TLS) 以及 PEAP-Microsoft 质询握手身份验证协议版本 2 (MS-CHAP v2),则必须向所有 NPS 注册服务器证书。 服务器证书必须符合以下条件:

  • 满足配置满足 PEAP 和 EAP 要求的证书模板中所述的最低服务器证书要求

  • 由客户端计算机信任的证书颁发机构 (CA) 颁发。 如果 CA 的证书存在于当前用户和本地计算机的受信任的根证书颁发机构证书存储中,则该 CA 是受信任的。

在受信任的根 CA 是第三方 CA(如 Verisign)或者是已使用 Active Directory 证书服务 (AD CS) 为公钥基础结构 (PKI) 部署的 CA 的情况下,以下说明有助于管理部署中的 NPS 证书。

更改缓存的 TLS 句柄过期时间

在 EAP-TLS、PEAP-TLS 和 PEAP-MS-CHAP v2 的初始身份验证过程中,NPS 会缓存连接客户端的 TLS 连接属性的一部分。 客户端也会缓存 NPS 的 TLS 连接属性的一部分。

这些 TLS 连接属性的每个单独集合称为 TLS 句柄。

客户端计算机可缓存多个验证器的 TLS 句柄,而 NPS 可缓存多个客户端计算机的 TLS 句柄。

使用客户端和服务器上缓存的 TLS 句柄,可以更快地执行重新身份验证过程。 例如,当无线计算机使用 NPS 重新进行身份验证时,NPS 可检查无线客户端的 TLS 句柄,并可快速确定客户端连接是重新连接。 NPS 对连接授权,而无需执行完全身份验证。

相应地,客户端检查 NPS 的 TLS 句柄,确定它是重新连接,并且无需执行服务器身份验证。

在运行 Windows 10 和 Windows Server 2016 的计算机上,默认的 TLS 句柄过期时间为 10 小时。

在某些情况下,可能需要延长或缩短 TLS 句柄过期时间。

例如,在用户证书被管理员吊销且该证书已过期的情况下,可能需要缩短 TLS 句柄过期时间。 在这种情况下,如果 NPS 缓存的 TLS 句柄尚未过期,则用户仍可连接到网络。 缩短 TLS 句柄过期时间可能有助于防止此类证书被吊销的用户重新连接。

注意

这种情况的最佳解决方案是在 Active Directory 中禁用该用户帐户,或从网络策略中有权连接网络的 Active Directory 组中删除该用户帐户。 但由于复制延迟,将这些更改传播到所有域控制器也可能会延迟。

配置客户端计算机上的 TLS 句柄过期时间

可使用此过程更改客户端计算机缓存 NPS 的 TLS 句柄的持续时间。 成功对 NPS 进行身份验证后,客户端计算机会将 NPS 的 TLS 连接属性缓存为 TLS 句柄。 TLS 句柄的默认持续时间为 10 小时(36,000,000 毫秒)。 可使用以下过程延长或缩短 TLS 句柄过期时间。

要完成此过程,需要至少具有管理员身份或同等身份。

重要

此过程必须在 NPS 上执行,而不是在客户端计算机上执行。

配置客户端计算机上的 TLS 句柄过期时间

  1. 在 NPS 上,打开注册表编辑器。

  2. 浏览到注册表项 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL

  3. 在“编辑”菜单上,单击“新建”,然后单击“项”

  4. 键入 ClientCacheTime,然后按 Enter

  5. 右键单击“ClientCacheTime”,再单击“新建”,然后单击“DWORD (32 位)值”。

  6. 键入你希望在 NPS 首次成功尝试身份验证后客户端计算机缓存 NPS 的 TLS 句柄的持续时间(以毫秒为单位)。

配置 NPS 上的 TLS 句柄过期时间

可使用此过程更改 NPS 缓存客户端计算机的 TLS 句柄的持续时间。 成功对访问客户端进行身份验证后,NPS 会将客户端计算机的 TLS 连接属性缓存为 TLS 句柄。 TLS 句柄的默认持续时间为 10 小时(36,000,000 毫秒)。 可使用以下过程延长或缩短 TLS 句柄过期时间。

要完成此过程,需要至少具有管理员身份或同等身份。

重要

此过程必须在 NPS 上执行,而不是在客户端计算机上执行。

配置 NPS 上的 TLS 句柄过期时间

  1. 在 NPS 上,打开注册表编辑器。

  2. 浏览到注册表项 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL

  3. 在“编辑”菜单上,单击“新建”,然后单击“项”

  4. 键入 ServerCacheTime,然后按 Enter

  5. 右键单击“ServerCacheTime”,再单击“新建”,然后单击“DWORD (32 位)值”。

  6. 键入你希望在客户端计算机首次成功尝试身份验证后 NPS 缓存客户端计算机的 TLS 句柄的持续时间(以毫秒为单位)。

获取受信任的根 CA 证书的 SHA-1 哈希

使用此过程可从本地计算机上安装的证书中获取受信任的根证书颁发机构 (CA) 的安全哈希算法 (SHA-1) 哈希。 在某些情况下,例如部署组策略时,需要使用证书的 SHA-1 哈希指定证书。

使用组策略时,可以指定一个或多个受信任的根 CA 证书,客户端必须使用这些证书才能在使用 EAP 或 PEAP 进行相互身份验证的过程中对 NPS 进行身份验证。 要指定客户端必须用来验证服务器证书的受信任的根 CA 证书,可以输入证书的 SHA-1 哈希。

此过程演示如何使用 Microsoft 管理控制台 (MMC) 证书管理单元获取受信任的根 CA 证书的 SHA-1 哈希。

要完成此过程,你必须是本地计算机上“用户”组的成员

获取受信任的根 CA 证书的 SHA-1 哈希

  1. 在“运行”对话框或 Windows PowerShell 中,键入 mmc,然后按 ENTER。 Microsoft 管理控制台 (MMC) 会打开。 在 MMC 中,单击“文件”,然后单击“添加/删除管理单元”。 此时将打开“添加或删除管理单元”对话框。

  2. 在“添加或删除管理单元”的“可用管理单元”中,双击“证书”。 此时会打开“证书管理单元”向导。 单击“计算机帐户”,然后单击“下一步”

  3. 在“选择计算机”中,确保选中“本地计算机(运行此控制台的计算机)”,然后依次单击“完成”和“确定”

  4. 在左窗格中,双击“证书(本地计算机)”,然后双击“受信任的根证书颁发机构”文件夹

  5. “证书”文件夹是“受信任的根证书颁发机构”文件夹的子文件夹。 单击“证书”文件夹。

  6. 在详细信息窗格中,浏览到受信任的根 CA 的证书。 双击该证书。 此时将打开“证书”对话框

  7. “证书” 对话框中,单击 “详细信息” 选项卡。

  8. 在字段列表中,滚动并选择“指纹”

  9. 在下方窗格中,将显示证书的 SHA-1 哈希的十六进制字符串。 选择 SHA-1 哈希,然后按复制命令的 Windows 键盘快捷方式 (Ctrl+C) 将哈希复制到 Windows 剪贴板。

  10. 打开要粘贴 SHA-1 哈希的位置并正确定位光标,然后按粘贴命令的 Windows 键盘快捷方式 (CTRL+V)。

有关证书和 NPS 的详细信息,请参阅配置满足 PEAP 和 EAP 要求的证书模板

有关 NPS 的详细信息,请参阅网络策略服务器 (NPS)