准备
整个流程主要包括两个部分,vendor和customer。过程中会用到一个python脚本“mdm_vendor_sign”可以到github上下载。
企业级开发者
MDM功能的开发必须是苹果企业级开发者账号(Apple Enterprise Account)。个人开发者账号是不可以的。
申请移动设备管理厂商-MDM Vendor
前往苹果开发者着网站申请成为MDM Vendor:
https://developer.apple.com/contact/submit.php
申请过程需要1-2工作日
制作证书
制作过程中输入命令的前提是 cd到证书文件所在目录
创建MDM Vendor CSR (证书申请签名)
- 打开钥匙串-证书助理-从证书颁发机构申请证书
- User Email Address: 输入与Apple ID相同的邮箱地址
- Common Name: 公司名称+MDM 例如(Baidu Inc. MDM)
- 将签名存储到本地备用
上传CSR到苹果证书管理系统
- 在开发者网站 add new certificate,选择MDM CSR
- 按照向导下一步,期间上传CSR
- 完成
下载苹果签名证书并加入钥匙串
- 在钥匙串中会有一个MDM Vendor:公司 的证书
- 地方点击证书展开后可以看到MDM私钥
创建推送证书CSR(证书申请签名)
- 需要一个新的CSR
- 打开钥匙串-证书助理-从证书颁发机构申请证书
- User Email Address: 可以不用Apple ID
- Common Name: 公司名+Push
- 保存至本地备用
导出 “公司+MDM”私钥和MDM Vendor证书
- 导出私钥成.p12文件,这个文件包括了证书和key。命名为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
- 去掉private ket密码:
penssl rsa -in key.pem -out private.key
- 以上是为先一步生成特殊的苹果签名CSR做准备
下载 mdmvendorsign工具
- 下载工具的证书同目录
- 运行
python mdm_vendor_sign.py –key private.key –csr push.csr –mdm mdm.cer –out applepush.csr
- 如果运行成功会出现提示upload the file 之类的提示
- 如果不成功,则需要做一写改动:
- 首先手动下载wwdr.cer证书到此目录
- 修改mdmvendorsign.py 代码128行为:
intermediate_cer = open('wwdr.cer','r').read()
- 再次运行
从Apple创建推送证书
- 根据提示上传到 https://identity.apple.com/pushcert
- 下载推送证书
- 将证书载入钥匙串(会显示 APSP:XXXX)
为推送准备证书
- 双击推送证书,获取 push topic 信息备用。例:com.apple.mgmt.External.<guid>
- 导出此证书为.p12文件
- 需要转换为APNSWrapper可用的格式
openssl pkcs12 -in mdm.12 -out pushcert.pem -nodes