阻止那些使用已吊销证书的 VPN 客户端

本文介绍如何配置 RRAS 服务器以阻止在安装任何 Windows 更新后使用已吊销的 IKEv2 证书进行身份验证的 VPN 客户端。

为证书吊销配置 RRAS 服务器后,任何尝试使用已吊销的 IKEv2 证书进行身份验证的 VPN 客户端(例如设备隧道 Always-on VPN)都会被拒绝连接。

有关 Windows 中的身份验证证书的详细信息,请参阅 Windows 中的证书和信任

配置 VPN 身份验证

  1. 确认所有 VPN 客户端和 RRAS 服务器证书都有 CDP 条目,并且 RRAS 服务器可以访问相应的 CRL。

  2. 在 RRAS 服务器上,运行以下 PowerShell 代码以将身份验证方法设置为接受“所有者”包含证书颁发机构名称的根证书。 确保将 {你的根证书颁发机构} 替换为你的根证书颁发机构的名称。

      $cert1 = ( Get-ChildItem -Path cert:LocalMachine\root | Where-Object -FilterScript { $_.Subject -Like "*CN={Your Root Certification Authority}*" } )
      Set-VpnAuthProtocol -RootCertificateNameToAccept $cert1 -PassThru
    

配置 RRAS 服务器以强制实施 IKEv2 计算机证书吊销

  1. 在 RRAS 服务器上,打开命令提示符窗口。

  2. 在命令提示符窗口中,运行以下命令:

    reg add HKLM\SYSTEM\CurrentControlSet\Services\RemoteAccess\Parameters\Ikev2 /f /v CertAuthFlags /t REG_DWORD /d "4"
    
  3. 重启“路由和远程访问”服务。

注意

若要对这些 VPN 连接禁用证书吊销,请设置 CertAuthFlags = 2 或删除 CertAuthFlags 值,然后重启“路由和远程访问”服务。

吊销 IKEv2 计算机 VPN 客户端证书

  1. 从证书颁发机构吊销 VPN 客户端证书。

  2. 从证书颁发机构发布新的 CRL。

  3. 在 RRAS 服务器上打开管理命令提示符窗口,然后运行以下命令:

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

验证证书吊销是否有效

注意

在使用此过程之前,请确保启用 CAPI2 操作事件日志。

  1. 尝试使用已吊销证书的客户端连接到 VPN。 RRAS 服务器应拒绝连接并显示“IKE 身份验证凭据不可接受”之类的消息。

  2. 在 RRAS 服务器上打开事件查看器,然后导航到“应用程序和服务日志/Microsoft/Windows/CAPI2”。

  3. 搜索包含以下信息的事件:

    • 日志名称:Microsoft-Windows-CAPI2/Operational Microsoft-Windows-CAPI2/Operational
    • 事件 ID:41
    • 该事件包含以下文本:subject="Client FQDN"(Client FQDN 表示已吊销证书的客户端的完全限定域名。)

    事件数据的“<结果>”字段应包含“证书已吊销”。 例如,查看事件的以下摘录:

    Log Name:      Microsoft-Windows-CAPI2/Operational Microsoft-Windows-CAPI2/Operational
    Source:        Microsoft-Windows-CAPI2
    Date:          5/20/2019 1:33:24 PM
    Event ID:      41
    ...
    Event Xml:
    <Event xmlns="https://schemas.microsoft.com/win/2004/08/events/event">
     <UserData>
      <CertVerifyRevocation>
       <Certificate fileRef="C97AE73E9823E8179903E81107E089497C77A720.cer" subjectName="client01.corp.contoso.com" />
       <IssuerCertificate fileRef="34B1AE2BD868FE4F8BFDCA96E47C87C12BC01E3A.cer" subjectName="Contoso Root Certification Authority" />
       ...
       <Result value="80092010">The certificate is revoked.</Result>
      </CertVerifyRevocation>
     </UserData>
    </Event>