对 Microsoft Intune 中的 NDES 策略模块进行故障排除

本文提供指导,帮助你验证网络设备注册服务 (NDES) 策略模块的操作,该模块随 Microsoft Intune 证书连接器一起安装。 当 NDES 收到证书请求时,它会将请求转发到策略模块,该模块将请求验证为对设备有效。 验证后,NDES (CA) 联系证书颁发机构,以代表设备请求证书。

本文适用于 SCEP 通信工作流的步骤 3 和步骤 4。

与策略模块的 NDES 通信

收到来自设备的证书请求后,NDES 会通过随 Microsoft Intune 证书连接器一起安装的策略模块,Intune验证该请求。 这些条目引用 证书注册点

指示成功的日志条目

若要确认是否已将验证请求提交到模块,请在 NDES 服务器上的日志中查找类似于以下示例的条目:

  • IIS 日志

    fe80::f53d:89b8:c3e8:5fec%13 POST /CertificateRegistrationSvc/Certificate/VerifyRequest - 443 - 
    fe80::f53d:89b8:c3e8:5fec%13 NDES_Plugin - 201 0 0 341 875
    
  • NDESPlugin 日志

    Calling VerifyRequest ...  
    Sending request to certificate registration point.
    

    以下示例指示已成功验证设备质询请求,并且 NDES 现在可以联系 CA:

    Verify challenge returns true
    Exiting VerifyRequest with 0x0
    
  • CertificateRegistrationPoint.svclog

    Validation Phase 1 finished with status True.
    Validation Phase 3 finished with status True.
    VerifyRequest Finished with status True

当不存在成功指标时

如果找不到这些条目,请先查看 设备到 NDES 服务器通信的故障排除指南。

如果文章中的信息无法帮助你解决问题,以下是可以指示问题的附加条目。

NDESPlugin.log包含错误 12175

当日志包含类似于以下内容的错误 12175 时,SSL 证书可能存在问题:

WINHTTP_CALLBACK_STATUS_FLAG_CERT_CN_INVALID
Failed to send http request /CertificateRegistrationSvc/Certificate/VerifyRequest. Error 12175

如果存在使用者可选名称,移动设备上的新式浏览器和浏览器将忽略 SSL 证书上的公用名。

解决方案:为 Web 服务器 SSL 证书颁发具有以下通用名称和使用者可选名称的属性,然后将其绑定到 IIS 中的端口 443:

  • 使用者名称
    CN = 外部服务器名称
  • 使用者可选名称
    名称 = 外部服务器名称
    DNS 名称 = 内部服务器名称

NDESPlugin.log包含错误 403 - 禁止访问:访问被拒绝”

当以下日志包含类似于以下内容的错误 403 时,客户端证书可能不受信任或无效:

NDESPlugin.log

Sending request to certificate registration point.
Verify challenge returns <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>403 - Forbidden: Access is denied.</title>

IIS 日志

POST /CertificateRegistrationSvc/Certificate/VerifyRequest - 443 -<IP_address>
NDES_Plugin - 403 16 2148204809 453  

如果 NDES 服务器的受信任的根证书颁发机构证书存储中存在中间 CA 证书,则会出现此问题。

如果证书具有相同的 “颁发给 ”和“ 颁发者” 值,则它是根证书。 否则,它是中间证书。

解决方案:若要解决此问题,请识别并删除受信任的根证书颁发机构证书存储中的中间 CA 证书。

NDESPlugin.log指示质询返回 false

当质询结果返回 false 时,检查 CertificateRegistrationPoint.svclog 中查找错误。 例如,你可能会看到类似于以下条目的“无法检索签名证书”错误:

Signing certificate could not be retrieved. System.Security.Cryptography.CryptographicException: m_safeCertContext is an invalid handle. at System.Security.Cryptography.X509Certificates.X509Certificate.ThrowIfContextInvalid() at System.Security.Cryptography.X509Certificates.X509Certificate.GetCertHashString() at Microsoft.ConfigurationManager.CertRegPoint.CRPCertificate.RetrieveSigningCert(String certThumbprint

解决方案:在安装了连接器的服务器上,打开注册表编辑器,找到HKLM\SOFTWARE\Microsoft\MicrosoftIntune\NDESConnector注册表项,然后检查 SigningCertificate 值是否存在。

如果此值不存在,请在 services.msc 中重启Intune连接器服务,然后检查该值是否显示在注册表中。 如果值仍然缺失,则通常是由于 NDES 服务器与Intune服务之间的网络连接问题。

NDES 传递颁发证书的请求

证书注册点 (策略模块) 成功验证后,NDES 代表设备将证书请求传递给 CA。

指示成功的日志条目

  • NDESPlugin 日志

    Verify challenge returns true
    Exiting VerifyRequest with 0x0
    
  • IIS 日志

    fe80::f53d:89b8:c3e8:5fec%13 GET /certsrv/mscep/mscep.dll/pkiclient.exe ... 80 - 
    fe80::f53d:89b8:c3e8:5fec%13 Mozilla/4.0+(compatible;+Win32;+NDES+client) - 200 0 0 2713 1296
    
  • CertificateRegistrationPoint.svclog

    Validation Phase 1 finished with status True.
    Validation Phase 3 finished with status True.
    VerifyRequest Finished with status True

当不存在成功指标时

如果未看到指示成功的条目,请完成以下步骤:

  1. 在证书注册点验证质询时,查找在 CertificateRegistrationPoint.svclog 中记录的问题。 查找以下行之间的条目:

    • VerifyRequest 已启动。
    • VerifyRequest 已完成,状态为 False
  2. 在 CA 上打开证书颁发机构 MMC,然后选择“ 失败的请求 ”以查找有助于识别问题的错误。 下图是一个示例:

    示例失败请求的屏幕截图。

  3. 查看 CA 上的应用程序事件日志中的错误。 通常,可以看到与上一步“ 失败的请求” 中显示的错误相匹配。 下图是一个示例:

    屏幕截图显示了应用程序日志的详细信息。

后续步骤

如果 NDES 策略模块验证请求并将请求转发到证书颁发机构,则下一步是检查 证书传递到设备的证书