iOS开发基础100-MDM证书申请流程
在 iOS 设备管理(MDM)中,成为一名合格的 MDM Vendor 是重要的一步。本文将详细介绍申请成为 MDM Vendor 的步骤,以及生成和使用相关证书的具体流程。
一、申请成为 MDM Vendor
1. 先决条件
首先,需要拥有一个 iOS Developer Enterprise Program 账户。默认情况下,iOS 企业开发账户不支持 MDM 功能,因此你必须向苹果申请开通。
2. 提交申请
- 访问苹果开发者网站:MDM 功能申请页面。
- 使用企业开发账户的 Agent 身份登录。
- 提交申请说明,表明希望成为 MDM Vendor。通常,苹果会在一个工作日内处理申请。
- 申请处理完毕后,苹果会给 Agent 发邮件通知。此后,登录开发者中心,在添加 iOS 证书界面可以看到一个新的 "MDM CSR" 选项。
二、生成私钥和 CSR 文件
1. 创建私钥
-
打开钥匙串访问工具,点击“钥匙串访问”→“证书助理”→“从证书颁发机构请求证书”。
-
在弹出的窗口中,填写如下信息:
- 用户电子邮件:注册的苹果账号(Apple ID)。
- 常用名称:输入一个名称(记住这个名称,需要提供给开发人员)。
- CA 电子邮件地址:不填写。
- 请求的内容:选择“存储到磁盘”。
-
点击继续,保存生成的文件。通常会生成一个名为
CertificateSigningRequest.certSigningRequest
的文件,可以重命名为MdmPushChat.certSigningRequest
以便管理。在钥匙串内会生成一个私钥。 -
将私钥导出为
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. 登录开发者账号
- 打开苹果开发者网站并登录。
- 进入“Certificates, Identifiers & Profiles”页面。
2. 提交 CSR 文件
-
点击 Certificates,然后选择 “Production” 并点击加号按钮。
-
选择 “MDM CSR”。
-
点击 Continue。
-
在上传 CSR 文件页面,选择步骤一中生成的
MdmPushChat.certSigningRequest
文件,并点击 Continue。 -
苹果服务器会生成 MDM 证书,点击 Download 下载
MDM.cer
文件。
四、生成 PEM 文件
1. 下载苹果证书
从苹果证书授权页面下载 Apple 根证书和 WWDR 证书。文件名分别为:AppleIncRootCertificate.cer
和 AppleWWDRCA.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
文件签名
- MDM Customer 将生成的
customer.der
文件交给 MDM Vendor。 - 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
- 使用 Apple ID 登录苹果 Push 证书门户。
- 点击“Create a Certificate”,上传
plist_encoded
文件。 - 上传后会生成一个 APNS 证书,下载得到
.pem
文件(可以重命名为push_cert.pem
)。双击该文件,将证书安装到钥匙串中。
6. 导出 p12 格式证书
打开钥匙串,从中导出刚才安装的证书为 p12 格式。这是 MDM 中需要用到的证书。
六、解析
1. 安全层面
- 私钥和公钥:使用非对称加密保证传输数据的安全性。
- 证书校验:通过苹果服务器验证 CSR 文件的合法性和正确性。
- 签名和验证:确保传输文件和证书的完整性和不可篡改性。
2. 证书管理
- 设备间信任:通过证书建立设备间的受信任连接。
- 证书生命周期:证书的生成、分发、使用、更新和撤销,形成一个完整的生命周期管理。
3. 系统安全
- MDM Vendor 与 Customer:MDM Vendor 负责生成和签署证书,MDM Customer 负责维护和管理设备。
- 双向认证:确保相互通信的双方都经过验证,防止中间人攻击。
通过以上详尽步骤,开发者可以成功申请成为 MDM Vendor,并完成相关证书的生成。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步