申請成為MDM Vendor
首先需要擁有一個 iOS Developer Enterprise Program 帳號;
申請成為MDM Vendor,iOS企業(yè)開發(fā)帳號默認(rèn)不支持MDM功能,需要向蘋果申請才能開通,訪問 https://developer.apple.com/contact/submit.php,并通過iOS企業(yè)開發(fā)帳號Agent身份登錄,提交申請說明希望成為MDM Vendor,蘋果一般在一個工作日內(nèi)會處理完畢,處理完后會給Agent發(fā)郵件通知,此時再次登錄到開發(fā)中心Add iOS Certificate界面或多處一個“MDM SCR”選項(xiàng)
1 創(chuàng)建私鑰
打開鑰匙串訪問,點(diǎn)擊“鑰匙串訪問”→證書助理→從證書頒發(fā)機(jī)構(gòu)請求證書如圖1-1:

圖1-1
點(diǎn)擊后調(diào)到如圖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
打開網(wǎng)頁https://developer.apple.com,用蘋果ID登錄如圖2-1,點(diǎn)擊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
然后點(diǎn)擊Continue,MDM vendor文件生成如下圖2-6

圖2-6
點(diǎn)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、重復(fù)第一步創(chuàng)建一個Customer的certSigningRequest 使用鑰匙串創(chuàng)建CSR,記住密鑰對常用名稱(便于導(dǎo)出)。 導(dǎo)出 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 證書和蘋果根證書,也不需要進(jìn)行復(fù)雜的證書格式轉(zhuǎn)換。WWDR和蘋果根證書的下載以及pem 格式轉(zhuǎn)換都是由腳本自動進(jìn)行的。

腳本下載下來后需要把這三個文件拖到這里,然后執(zhí)行我們下面的命令:
Python mdm_vendor_sign.py --csr tortoise_customer.certSigningRequest --key 'vendor.key' --mdm mdm.cer
如果不出問題的話,會輸出下面:

5.上傳plist
用你的Apple ID 登錄 https://identity.apple.com/pushcert/ ,點(diǎn)擊“Create aCertificate”,上傳plist_encoded 文件。使用java 代碼簽名的請注意,不要上傳plist.xml,而是上傳plist_encoded。上傳后會產(chǎn)生一個APNS 證書,下載后得到一個.pem 文件(為方便使用,改名為push_cert.pem)。雙擊.pem 文件將證書安裝到鑰匙串中。打開鑰匙串,看看到該證書名為“APSP:”,如下圖所示:

我們發(fā)現(xiàn)剛剛制作的證書是“此證書是由未知頒發(fā)機(jī)構(gòu)簽名的”的,為什么呢,明明簽名機(jī)構(gòu)是蘋果的。如果細(xì)心的同學(xué)應(yīng)該能發(fā)現(xiàn),以前我們用的簽名者是 Apple Application Integration Certification Authority
但是現(xiàn)在變成了 Apple Application Integration 2 Certification Authority,就多了個2。

解決方法:下載相應(yīng)的證書,https://www.apple.com/certificateauthority/

下載好之后,雙擊安裝之后,就可以看到“此證書有效”。(其實(shí)不安裝這個證書,它也不會影響MDM功能使用)
這個時候還需要導(dǎo)出p12給我后臺使用,因?yàn)楹笈_只能識別p12,
導(dǎo)出時一定要以MDM_mobileark.p12這樣命名,密碼自定義(注意區(qū)分大小寫)

這個就是我們最終生成的p12證書,把他上傳到我們的應(yīng)用后臺就可以了。