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

时间:2014-11-27 14:19:42

标签: ios objective-c iphone ssl mdm

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

供应商:

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

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

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

    保存到磁盘。

  2. vendor.csr文件上传到企业帐户,然后从该帐户下载mdm.cer文件。

  3. 将此证书加载到密钥链。

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

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

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

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

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

    对于客户:

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

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

      通用名称:公司名称推送

      保存到磁盘。

    2. Python代码:

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

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

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

      推送证书:

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

      2. 安装了pushcert,下载到密钥链并以p12格式导出,并将其命名为mdm.p12。

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

      4. iPhone配置实用程序:

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

        1. 一般

          一个。姓名:我公司私人有限公司

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

          ℃。组织:我的公司名称

          d。说明:版本1.0

          即安全:永远。

        2. 凭证

          上传了推送证书工作最后一步生成的pushcert.pem文件。

        3. 移动设备管理

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

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

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

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

        4. 导出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"
          
          )
          

1 个答案:

答案 0 :(得分:0)

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

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

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