Android设备通过Intune注册SCEP证书时CA证书指纹验证失败求助
Intune Android设备SCEP证书注册失败:CA证书指纹验证错误
我负责搭建NDES基础设施,为已注册到Intune的Android设备提供SCEP证书。完成所有基础设施安装与配置步骤后,测试设备仍无法完成证书注册,Intune控制台未给出任何问题提示,但从测试设备日志中发现核心错误为**"CA certificate fingerprint could not be verified."**,相关日志信息如下:
2022-10-30T15:52:01.2350000 VERB org.jscep.client.Client 25727 03516 Requesting certificate verification. 2022-10-30T15:52:01.6350000 INFO com.microsoft.intune.omadm.cryptography.androidapicomponent.abstraction.GetCertificateChainUseCase 25727 03516 Certificate chain built with length 1, rootIssuerFound = true 2022-10-30T15:52:01.6370000 VERB org.jscep.client.Client 25727 03516 Certificate verification failed. 2022-10-30T15:52:01.6380000 ERR_ com.microsoft.omadm.platforms.android.certmgr.CertificateRequestHandler 25727 03516 Enrollment request failed org.jscep.client.ClientException: CA certificate fingerprint could not be verified. org.jscep.client.Client.verifyCA(:752) org.jscep.client.Client.getCaCertificate(:282) org.jscep.client.Client.getEncoder(:699) org.jscep.client.Client.enrol(:623) com.microsoft.omadm.platforms.android.certmgr.CertificateRequestHandler.enrollCertificate(:181) com.microsoft.omadm.platforms.android.certmgr.CertificateRequestHandler.processRequest(:123) com.microsoft.omadm.platforms.android.certmgr.CertificateEnrollmentManager.tryEnrollCertificate(:123) com.microsoft.omadm.platforms.android.certmgr.CertificateEnrollmentManager.enrollPendingCertificates(:205) com.microsoft.omadm.platforms.android.provider.CertificateEnrollmentProvider$CertificateRequestPolicy.enforce(:400) com.microsoft.omadm.client.tasks.TemporaryOMADMClientExecutorTask.checkComplianceAndEnforceForUser(:915) com.microsoft.omadm.client.tasks.TemporaryOMADMClientExecutorTask.updatePolicyForUser(:805) com.microsoft.omadm.client.tasks.TemporaryOMADMClientExecutorTask.updatePolicy(:1278) com.microsoft.omadm.client.tasks.TemporaryOMADMClientExecutorTask.run(:255) com.microsoft.omadm.taskexecutor.TaskExecutor$InternalExecutorRunner.run(:322) java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462) java.util.concurrent.FutureTask.run(FutureTask.java:266) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) java.lang.Thread.run(Thread.java:923)
排查方向
- 核对Intune SCEP策略的CA指纹与实际CA证书指纹
- 导出CA根证书,使用命令
openssl x509 -in cacert.pem -noout -fingerprint -sha256(根据实际使用的哈希算法调整参数)生成指纹,与Intune SCEP配置中的指纹逐一比对,注意区分大小写、是否包含多余的冒号或空格
- 导出CA根证书,使用命令
- 确认Android设备的CA根证书信任状态
- 检查设备是否已安装对应的CA根证书,且证书必须放置在受信任的根证书颁发机构存储区;日志显示证书链长度为1且找到根颁发机构,需确认该根证书正是设备信任的那一份
- 验证NDES服务器的SSL证书配置
- 确保NDES服务器IIS绑定使用的SSL证书包含正确的主体备用名称(SAN),且证书链完整无缺失
- 测试设备访问NDES服务地址时,是否能正常信任服务器证书,避免证书不被信任导致指纹验证失败
- 统一哈希算法配置
- 确认Intune SCEP策略中指定的哈希算法(如SHA-256)与CA证书指纹使用的算法完全一致,设备端验证时会使用策略指定的算法校验指纹,不匹配会直接失败
- 检查NDES服务的运行状态与权限
- 查看NDES服务器的事件日志,定位是否有SCEP服务相关的错误或警告信息
- 确认NDES服务账户拥有访问企业CA的足够权限,避免服务无法正常获取CA证书信息
内容的提问来源于stack exchange,提问作者Pantafernando
相关产品推荐
相关产品推荐

