Microsoft Intune 中的 NDES 策略模块疑难解答
本文提供了指导,可帮助你验证和排查使用 Microsoft Intune 证书连接器安装的网络设备注册服务(NDES)策略模块的操作问题。 当 NDES 收到证书请求时,它会将请求转发到策略模块,该模块将验证请求是否对设备有效。 验证后,NDES 会联系证书颁发机构(CA),代表设备请求证书。
本文适用于 SCEP 通信工作流的步骤 3 和步骤 4。
与策略模块的 NDES 通信
从设备接收证书请求后,NDES 会通过随 Microsoft 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 Started。
- VerifyRequest Finished with status False
在 CA 上打开证书颁发机构 MMC,然后选择“失败的请求”以查找有助于识别问题的错误。 下图就是一个例子:
查看 CA 上的应用程序事件日志中出现错误。 通常可以看到与上一步失败 的请求 中显示的错误匹配。 下图就是一个例子:
后续步骤
如果 NDES 策略模块验证请求,并将请求转发到证书颁发机构,下一步是查看 证书传送到设备。