iOS开发基础100-MDM证书申请流程

在 iOS 设备管理(MDM)中,成为一名合格的 MDM Vendor 是重要的一步。本文将详细介绍申请成为 MDM Vendor 的步骤,以及生成和使用相关证书的具体流程。

一、申请成为 MDM Vendor

1. 先决条件

首先,需要拥有一个 iOS Developer Enterprise Program 账户。默认情况下,iOS 企业开发账户不支持 MDM 功能,因此你必须向苹果申请开通。

2. 提交申请

  1. 访问苹果开发者网站:MDM 功能申请页面
  2. 使用企业开发账户的 Agent 身份登录。
  3. 提交申请说明,表明希望成为 MDM Vendor。通常,苹果会在一个工作日内处理申请。
  4. 申请处理完毕后,苹果会给 Agent 发邮件通知。此后,登录开发者中心,在添加 iOS 证书界面可以看到一个新的 "MDM CSR" 选项。

二、生成私钥和 CSR 文件

1. 创建私钥

  1. 打开钥匙串访问工具,点击“钥匙串访问”→“证书助理”→“从证书颁发机构请求证书”。

  2. 在弹出的窗口中,填写如下信息:

    • 用户电子邮件:注册的苹果账号(Apple ID)。
    • 常用名称:输入一个名称(记住这个名称,需要提供给开发人员)。
    • CA 电子邮件地址:不填写。
    • 请求的内容:选择“存储到磁盘”。
  3. 点击继续,保存生成的文件。通常会生成一个名为 CertificateSigningRequest.certSigningRequest 的文件,可以重命名为 MdmPushChat.certSigningRequest 以便管理。在钥匙串内会生成一个私钥。

  4. 将私钥导出为 vendor.p12,导出时设置一个密码,并记住这个密码。

2. 生成私钥文件

使用 openssl 命令将 vendor.p12 转换为 vendor.key 文件:

openssl pkcs12 -in vendor.p12 -nocerts -out vendor.key

在此过程中,会提示输入三次密码:vendor.p12 的密码、vendor.key 的密码、再输入一次 vendor.key 的密码。

三、提交 CSR 并生成证书

1. 登录开发者账号

  1. 打开苹果开发者网站并登录。
  2. 进入“Certificates, Identifiers & Profiles”页面。

2. 提交 CSR 文件

  1. 点击 Certificates,然后选择 “Production” 并点击加号按钮。

  2. 选择 “MDM CSR”。

  3. 点击 Continue。

  4. 在上传 CSR 文件页面,选择步骤一中生成的 MdmPushChat.certSigningRequest 文件,并点击 Continue。

  5. 苹果服务器会生成 MDM 证书,点击 Download 下载 MDM.cer 文件。

四、生成 PEM 文件

1. 下载苹果证书

苹果证书授权页面下载 Apple 根证书和 WWDR 证书。文件名分别为:AppleIncRootCertificate.cerAppleWWDRCA.cer

2. 使用 openssl 生成 PEM 文件

运行以下命令,将证书转换为 PEM 格式:

openssl x509 -inform der -in MDM.cer -out mdm.pem
openssl x509 -inform der -in AppleWWDRCA.cer -out intermediate.pem
openssl x509 -inform der -in AppleIncRootCertificate.cer -out root.pem

上述命令生成了三个 PEM 格式的文件:mdm.pem, intermediate.pem, root.pem

五、MDM Customer 的生成和处理

1. 生成新的 CSR 文件

为了区分不同的 CSR 文件,再次生成一个新的 CSR 文件,常用名称应有所不同。例如命名为 MDMCustomer.csr

2. 转换 CSR 为 DER 格式的文件

openssl req -inform pem -outform der -in MDMCustomer.csr -out customer.der

3. MDM Vendor 对 customer.der 文件签名

  1. MDM Customer 将生成的 customer.der 文件交给 MDM Vendor。
  2. MDM Vendor 使用 Softthink 的 Java 代码对 customer.der 进行签名。可以在Softthink 下载地址中获取所需的代码。

创建一个新的 Java 项目,将 Softthink 的代码和 dom4j-1.6.1.jar 导入,将上面生成的文件和 Test.java 放到同一个目录下。

还需要解决 sun.misc.BASE64Encoder 找不到的问题,具体解决方法请自行百度。

4. 执行 Java 代码

Test.java 中设置 alias 和 password:

执行代码后,会生成一个 plist_encoded 文件。

5. 上传 plist

  1. 使用 Apple ID 登录苹果 Push 证书门户
  2. 点击“Create a Certificate”,上传 plist_encoded 文件。
  3. 上传后会生成一个 APNS 证书,下载得到 .pem 文件(可以重命名为 push_cert.pem)。双击该文件,将证书安装到钥匙串中。

6. 导出 p12 格式证书

打开钥匙串,从中导出刚才安装的证书为 p12 格式。这是 MDM 中需要用到的证书。

六、解析

1. 安全层面

  • 私钥和公钥:使用非对称加密保证传输数据的安全性。
  • 证书校验:通过苹果服务器验证 CSR 文件的合法性和正确性。
  • 签名和验证:确保传输文件和证书的完整性和不可篡改性。

2. 证书管理

  • 设备间信任:通过证书建立设备间的受信任连接。
  • 证书生命周期:证书的生成、分发、使用、更新和撤销,形成一个完整的生命周期管理。

3. 系统安全

  • MDM Vendor 与 Customer:MDM Vendor 负责生成和签署证书,MDM Customer 负责维护和管理设备。
  • 双向认证:确保相互通信的双方都经过验证,防止中间人攻击。

通过以上详尽步骤,开发者可以成功申请成为 MDM Vendor,并完成相关证书的生成。

posted @   Mr.陳  阅读(1844)  评论(1编辑  收藏  举报
点击右上角即可分享
微信分享提示