申请成为MDM Vendor
首先需要拥有一个 iOS Developer Enterprise Program 帐号;
申请成为MDM Vendor,iOS企业开发帐号默认不支持MDM功能,需要向苹果申请才能开通,访问 https://developer.apple.com/contact/submit.php,并通过iOS企业开发帐号Agent身份登录,提交申请说明希望成为MDM Vendor,苹果一般在一个工作日内会处理完毕,处理完后会给Agent发邮件通知,此时再次登录到开发中心Add iOS Certificate界面或多处一个“MDM SCR”选项
1 创建私钥
打开钥匙串访问,点击“钥匙串访问”→证书助理→从证书颁发机构请求证书如图1-1:
图1-1
点击后调到如图1-2窗口
图1-2
图1-3
使用命令生成vendor.key
openssl pkcs12 -in vendor.p12 -nocerts -out vendor.key
会要求你输入3次password:vendor.p12 的password、vendor.key 的password、vendor.key 的password。密码一定要记住
2 提交CSR
打开网页https://developer.apple.com,用苹果ID登录如图2-1,点击Certificates,Identifiers&Profiles
图2-1 操作如图2-2,1production→2加号
图2-2
选择MDM CSR
图2-3
如图2-4选择Continue
图2-4
Choose File选择步骤1中保存的CSR(MdmPushChat.certSigningRequest)文件如图2-5
图2-5
然后点击Continue,MDM vendor文件生成如下图2-6
图2-6
点Download,下载下来MDM.cer。
3 生成pem文件
下载WWDR证书与苹果根证书:http://www.apple.com/certificateauthority/,下下来两个文件名为:AppleIncRootCertificate.cer、AppleWWDRCA.cer的文件,然后终端使用命令行生成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
注意:如果你使用mdm_vendor_sign.py 脚本签名vendor 的plist 文件,则此步可省略。
我下面就是采用这种方法
4.MDM Customer
1、重复第一步创建一个Customer的certSigningRequest 使用钥匙串创建CSR,记住密钥对常用名称(便于导出)。 导出 certSigningRequest。文件名: tortoise_customer.certSigningRequest。
在mac上生成customer的encode文件plist_encoded,打开终端输入:(mdm_vendor_sign.py脚本文件,请到github下载:https://github.com/grinich/mdmvendorsign)
注意,mdm_vendor_sign.py 脚本只需要3个文件:customer的CSR、vendor.key、mdm 证书。它不需要WWDR 证书和苹果根证书,也不需要进行复杂的证书格式转换。WWDR和苹果根证书的下载以及pem 格式转换都是由脚本自动进行的。
脚本下载下来后需要把这三个文件拖到这里,然后执行我们下面的命令:
Python mdm_vendor_sign.py --csr tortoise_customer.certSigningRequest --key 'vendor.key' --mdm mdm.cer
如果不出问题的话,会输出下面:
5.上传plist
用你的Apple ID 登录 https://identity.apple.com/pushcert/ ,点击“Create aCertificate”,上传plist_encoded 文件。使用java 代码签名的请注意,不要上传plist.xml,而是上传plist_encoded。上传后会产生一个APNS 证书,下载后得到一个.pem 文件(为方便使用,改名为push_cert.pem)。双击.pem 文件将证书安装到钥匙串中。打开钥匙串,看看到该证书名为“APSP:”,如下图所示:
我们发现刚刚制作的证书是“此证书是由未知颁发机构签名的”的,为什么呢,明明签名机构是苹果的。如果细心的同学应该能发现,以前我们用的签名者是 Apple Application Integration Certification Authority
但是现在变成了 Apple Application Integration 2 Certification Authority,就多了个2。
解决方法:下载相应的证书,https://www.apple.com/certificateauthority/
下载好之后,双击安装之后,就可以看到“此证书有效”。(其实不安装这个证书,它也不会影响MDM功能使用)
这个时候还需要导出p12给我后台使用,因为后台只能识别p12,导出时一定要以MDM_mobileark.p12这样命名,密码自定义(注意区分大小写)
这个就是我们最终生成的p12证书,把他上传到我们的应用后台就可以了。