iOS SDK 中的 MDM iPCU 配置文件安装失败

Posted

技术标签:

【中文标题】iOS SDK 中的 MDM iPCU 配置文件安装失败【英文标题】:MDM iPCU Profile Installation Failed in iOS SDK 【发布时间】:2014-11-27 14:19:42 【问题描述】:

我正在设置 MDM 供应商并拥有相同的苹果企业帐户。但是在完成所有步骤后,当我尝试在 iPhone 上安装 iPhone 配置实用程序文件时遇到问题。我们收到警报说“配置文件安装失败”。请提出您怀疑的问题。以下是我创建配置文件所遵循的步骤。

对于供应商:

    我在我的 macbook 上创建了我的供应商 csr,名为 vendor.csr

    电子邮件:我的企业帐户电子邮件。

    通用名称:我的公司名称。

    保存到磁盘。

    已将vendor.csr文件上传到企业账户,并从该账户下载mdm.cer文件。

    已将此证书加载到密钥链中。

    将 .p12 文件导出为 private.p12 文件。

    使用命令提取私钥:openssl pkcs12 -in private.p12 -nocerts -out key.pem

    提取的证书:openssl pkcs12 -in private.p12 -clcerts -nokeys -out cert.pem

    将证书转换为des格式:openssl x509 -in cert.pem -inform PEM -out mdm.cer -outform DES

8.从私钥中提取密码:openssl rsa -in key.pem -out private.key

对于客户:

    现在我从名为 push.csr 的同一台 macbook 中创建了另一个用于推送的 csr。

    电子邮件:公司支持电子邮件。

    通用名称:公司名称推送

    保存到磁盘。

Python 代码:

链接:https://github.com/grinich/mdmvendorsign

我从上面的链接中获取了python代码,以从我上面生成的文件中获取plist编码文件,即private.key, push.csr, mdm.cer。我根据下面的命令重命名了我的文件并生成了一个plist编码文件。

命令: python mdm_vendor_sign.py --csr user_submitted_CSR.csr --key mdm_vendor_private.key --mdm mdm_certifiate_from_apple.cer

推送证书:

    然后我在“https://identity.apple.com/pushcert/”上上传了一个 plist 编码文件,并从那里下载了生成的推送证书。

    安装pushcert下载到keychain并以p12格式导出并命名为mdm.p12。

    将 mdm.p12 转换为 PEM 格式:openssl pkcs12 -in mdm.12 -out pushcert.pem -nodes

iPhone 配置实用程序:

我实现了 iPCU 的三个部分。对于服务器设置,我使用 RapidSSL 进行服务器设置。

    一般

    一个。名称 : My Company Private Limited

    b.标识符:com.mycompany.mdm.profile

    c。组织:我的公司名称

    d。说明:版本 1.0

    e。安全性:始终。

    凭据

    上传了push cert工作最后一步生成的pushcert.pem文件。

    移动设备管理

    一个。服务器网址:https://xyz.server

    b 入住网址:https://xyz.checin

    c。主题:com.apple.mgmt.External.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

    d。身份:从凭据中选择。

导出 iPCU -> 无/SignConfigurationProfile(都试过了)。

现在,当我通过邮件发送此文件时,该文件无法在设备上安装,并且我收到消息配置文件安装失败。我从日志中了解到设备无法连接到服务器。请建议我怎么做我解决了。

设备日志:

Nov 27 19:02:21 iPhone profiled[114] <Notice>: (Note ) MC: Checking for MDM installation...

Nov 27 19:02:21 iPhone profiled[114] <Notice>: (Note ) MC: ...finished checking for MDM installation.

Nov 27 19:02:21 iPhone profiled[114] <Notice>: (Note ) MC: Beginning profile installation...

Nov 27 19:02:21 iPhone profiled[114] <Error>:  SecTrustEvaluate  [leaf AnchorTrusted]

Nov 27 19:02:23 iPhone locationd[63] <Notice>: Gesture EnabledForTopCLient: 0, EnabledInDaemonSettings: 0

Nov 27 19:02:24 iPhone locationd[63] <Notice>: Gesture EnabledForTopCLient: 0, EnabledInDaemonSettings: 0

Nov 27 19:02:24 iPhone profiled[114] <Error>:  SecTrustEvaluate  [leaf AnchorTrusted]

Nov 27 19:02:26 iPhone profiled[114] <Notice>: (Error) MDM: Cannot Authenticate. Error: NSError:

Desc   : A connection to the server could not be established.

US Desc: A connection to the server could not be established.

Domain : MCHTTPTransactionErrorDomain

Code   : 23001

Type   : MCFatalError

Params : (

    "https://mdm.myCompanyName.com/Service1.svc",

    500

)

Nov 27 19:02:26 iPhone profiled[114] <Notice>: (Error) MC: Cannot install MDM “Mobile Device Management”. Error: NSError:

Desc   : The payload “Mobile Device Management” could not be installed.

Sugg   : A connection to the server could not be established.

US Desc: The payload “Mobile Device Management” could not be installed.

US Sugg: A connection to the server could not be established.

Domain : MCInstallationErrorDomain

Code   : 4001

Type   : MCFatalError

Params : (

    "Mobile Device Management"

)

...Underlying error:

NSError:

Desc   : A connection to the server could not be established.

US Desc: A connection to the server could not be established.

Domain : MCHTTPTransactionErrorDomain

Code   : 23001

Type   : MCFatalError

Params : (

    "https://mdm.myCompanyName.com/Service1.svc",

    500

)

Nov 27 19:02:26 iPhone profiled[114] <Notice>: (Error) MC: Rolling back installation of profile “com.myCompanyName.mdm.profile”...

Nov 27 19:02:26 iPhone profiled[114] <Notice>: (Error) MC: Installation of profile “com.myCompanyName.mdm.profile” failed with error: NSError:

Desc   : The profile “myCompanyName” could not be installed.

Sugg   : The payload “Mobile Device Management” could not be installed.

US Desc: The profile “myCompanyName” could not be installed.

US Sugg: The payload “Mobile Device Management” could not be installed.

Domain : MCProfileErrorDomain

Code   : 1009

Type   : MCFatalError

Params : (

    "myCompanyName"

)

【问题讨论】:

那么您是否正在尝试设置一个环境来开发您自己的 MDM 服务? 是的,它是我自己的 mdm 服务。 【参考方案1】:

您使用 Apple 的 MDM 供应商证书生成的证书不用于设备身份验证。它用于特定服务器向 APN 发送通知。

iPCU 中的身份(很久以前已弃用)用于客户端证书。另请记住,所有 TLS 证书都必须有效且受信任。您的服务器使用 HTTP 500 拒绝客户端,因此我将开始调查服务器日志以了解原因。

确实,如果您正在开发自己的 MDM 解决方案,我会向 Apple 提出 DTS 事件。 API 文档仅发布给企业开发人员计划中的人员,而不是公开可用的。 Apple 开发者论坛的 MDM 部分可能比这里更适合讨论它。

【讨论】:

以上是关于iOS SDK 中的 MDM iPCU 配置文件安装失败的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式验证 MDM 配置文件(配置)是不是已成功推送到 iOS 设备?

iOS MDM 配置文件是公开的吗?

开源MDM服务器的选择

了解配置文件和 Airwatch MDM

iOS MDM 覆盖擦除设备密码设置

iOS MDM:推送不起作用