对 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
当不存在成功指标时:
如果未看到指示成功的条目,请完成以下步骤:
在证书注册点验证质询时,查找在 CertificateRegistrationPoint.svclog 中记录的问题。 查找以下行之间的条目:
- VerifyRequest 已启动。
- VerifyRequest 已完成,状态为 False
在 CA 上打开证书颁发机构 MMC,然后选择“ 失败的请求 ”以查找有助于识别问题的错误。 下图是一个示例:
查看 CA 上的应用程序事件日志中的错误。 通常,可以看到与上一步“ 失败的请求” 中显示的错误相匹配。 下图是一个示例:
后续步骤
如果 NDES 策略模块验证请求并将请求转发到证书颁发机构,则下一步是检查 证书传递到设备的证书。