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 配置文件安装失败的主要内容,如果未能解决你的问题,请参考以下文章