在iOS設(shè)備和MDM Server通過APNS進行通信,對于消息的推送,我們需要專用的推送證書文件和密碼,本文介紹生成MDMPush.p12證書文件及密碼的過程。
(1)創(chuàng)建MDM供應(yīng)商CSR
① 在Mac上打開“鑰匙串訪問”;
② 菜單欄:“鑰匙串訪問”->“證書助理”->“從證書頒發(fā)機構(gòu)請求證書...”;
③ 使用與將要使用的開發(fā)人員帳戶相同的電子郵件。輸入一個通用名稱;
④ 選擇“保存到磁盤”,命名為:CertificateSigningRequest.certSigningRequest;


(2)生成mdmvendor.cer文件
登錄蘋果開發(fā)者賬號(https://developer.apple.com/account),進入“證書、標(biāo)識符和描述文件”->“證書(英文)”;

在“Certificates, Identifiers & Profiles”下點擊“Certificates”旁邊的藍色的“”;
在“Server”下選擇“MDM CSR”

上傳第(1)步生成的“CertificateSigningRequest.certSigningRequest”文件。然后下載.cer文件,把它命名為mdmvendor.cer。

(3)導(dǎo)出MDM私鑰
① 在“鑰匙串訪問”中打開您的mdmvendor.cer文件;
② 從左側(cè)選擇證書,你應(yīng)該發(fā)現(xiàn)證書名為MDM供應(yīng)商:通用名稱;
③ 這一行應(yīng)該有一個展開的箭頭,顯示“專用密鑰”;
④ 右鍵單擊私鑰,選擇導(dǎo)出,并保存為private.p12,此步驟需要設(shè)置密碼,需要自己記住;

(4)創(chuàng)建推送證書CSR
① 在“鑰匙串訪問”中;
② 再次從菜單欄:“鑰匙串訪問”->“證書助理”->“從證書頒發(fā)機構(gòu)請求證書...”;
③ 輸入您的電子郵件(可以是其他電子郵件,不必是開發(fā)者賬號)和通用名稱;
④ 選擇保存到磁盤,并將其命名為push.csr(與步驟(1)相同,不在附圖);
(5)提取MDM私鑰和MDM供應(yīng)商證書
使用命令提取私鑰:
openssl pkcs12 -in private.p12 -nocerts -out key.pem
注意:在步驟(3)的導(dǎo)出過程中在private.p12文件中設(shè)置了密碼,則需要在此命令中輸入相同的導(dǎo)入密碼,此外,您還需要輸入PEM密碼。
使用以下命令從key.pem中提取private.key:
openssl rsa -in key.pem -out private.key
注意:這個命令要求您輸入key.pem的密碼,需要和上一步的設(shè)置保持一致。
使用以下命令提取mdm證書:
openssl pkcs12 -in private.p12 -clcerts -nokeys -out cert.pem
注意:在步驟3中的導(dǎo)出過程中在private.p12文件中添加了密碼,需要在此命令中輸入相同的導(dǎo)入密碼。
使用以下命令將證書轉(zhuǎn)換為DES:
openssl x509 -in cert.pem -inform PEM -out mdm.cer -outform DES
(6)使用python命令生成applepush.csr
確保電腦安裝了python版本,且版本為2(不能太高);
通過git命令下載代碼:
git clone https://github.com/vineetchoudhary/Apple-iOS-MDM-Server.git
復(fù)制private.key、push.csr、mdm.cer到Apple-iOS-MDM-Server/vendor/下。
然后在Apple-iOS-MDM-Server/vendor/下執(zhí)行下面的python命令:
python mdm_vendor_sign.py --key private.key --csr push.csr --mdm mdm.cer --out applepush.csr
此命令生成了applepush.csr文件。
(7)從Apple獲得MDM推送證書
① 到Apple的推送證書門戶(https://identity.apple.com/pushcert/);
② 然后單擊創(chuàng)建證書按鈕,上傳applepush.csr以在表中創(chuàng)建一個新條目;
③ 下載生成的推送證書;

(8)準(zhǔn)備MDMPush.p12推送證書
① 在“鑰匙串訪問”中查找推送證書??雌饋硐馎PSP:xxxxxx;
② 右鍵單擊證書并選擇“顯示簡介”;
③ 復(fù)制“用戶ID”,它應(yīng)該看起來像com.apple.mgmt。我們稍后會使用它;
④ 右鍵單擊證書并選擇“導(dǎo)出…”。。。并將其保存為MDMPush.p12,并設(shè)置證書密碼;

自此,用于APNS推送MDM消息的證書制作完成。