iOS設(shè)備MDM開(kāi)發(fā)流程證書相關(guān)
** TracyYih 發(fā)表于
2015-03-23 18:08
** MDM, iOS
申請(qǐng)Vendor
申請(qǐng)成為MDM Vendor
首先需要擁有一個(gè) iOS Developer Enterprise Program 帳號(hào);
申請(qǐng)成為MDM Vendor,iOS企業(yè)開(kāi)發(fā)帳號(hào)默認(rèn)不支持MDM功能,需要向蘋果申請(qǐng)才能開(kāi)通,訪問(wèn)https://developer.apple.com/contact/submit.php,并通過(guò)iOS企業(yè)開(kāi)發(fā)帳號(hào)Agent身份登錄,提交申請(qǐng)說(shuō)明希望成為MDM Vendor,蘋果一般在一個(gè)工作日內(nèi)會(huì)處理完畢,處理完后會(huì)給Agent發(fā)郵件通知,此時(shí)再次登錄到開(kāi)發(fā)中心Add iOS Certificate界面或多處一個(gè)“MDM SCR”選項(xiàng)。
申請(qǐng)證書
在OS X上打開(kāi)鑰匙串,點(diǎn)擊“鑰匙串訪問(wèn)->證書助理->從證書頒發(fā)機(jī)構(gòu)請(qǐng)求證書”,創(chuàng)建一個(gè)CSR,將此CSR存儲(chǔ)至磁盤。記住“常用名稱”字段為私鑰的名字,創(chuàng)建CSR的同時(shí),鑰匙串“密鑰”欄中會(huì)增加一個(gè)以該常用名稱為名的私鑰。
在鑰匙串中選擇創(chuàng)建CSR時(shí)的私鑰,導(dǎo)出為MDMVendor.p12文件,導(dǎo)出時(shí)會(huì)要求你設(shè)置私鑰密碼,如果設(shè)置密碼請(qǐng)記住這個(gè)密碼(后面會(huì)用到)。
登錄iOS Developer Center,進(jìn)入Certificates,點(diǎn)擊Add Certificate(“+”按鈕),選擇Production下面的“MDM SCR”。
[圖片上傳中。。。(1)]
點(diǎn)擊Continue->Continue,上傳之前創(chuàng)建的CSR文件,然后點(diǎn)擊Generate。點(diǎn)擊Download,得到一個(gè)mdm.cer證書。
申請(qǐng)MDM Customer
創(chuàng)建CSR
使用鑰匙串創(chuàng)建一個(gè)CSR,記住密鑰的常用名稱,導(dǎo)出CSR,命名為MDMCustomer.csr。
獲取編碼的Plist文件
1
python mdm_verdor_sign.py --csr MDMCustomer.csr -key 'MDMVendor.key' --mdm mdm.cer
MDMCustomer.csr提交給Vendor,Vendor對(duì)Customer提交的MDMCustomer.csr進(jìn)行簽名。我們使用mdm_vendor_sign.py 工具簽名:執(zhí)行完后會(huì)生成一個(gè)plist_encoded文件。
獲取MDM推送證書
用iOS企業(yè)開(kāi)發(fā)帳號(hào)的Apple ID登錄 Apple Push Certificates Portal,選擇“Create a Certificate”,上傳之前的plist_encoded文件。上傳后會(huì)生成一個(gè)APNS的證書,下載得到.pem文件,雙擊文件安裝到鑰匙串。打開(kāi)鑰匙串可查看該證書名為“APSP:xxx”:
該證書即為MDM指令推送證書,可根據(jù)服務(wù)端需求導(dǎo)出p12或cer格式提供給服務(wù)端開(kāi)發(fā)人員。
配置 MDM Enrollment Profile
接下來(lái)需要生成一個(gè)MDM Enrollment Profile配置文件安裝到目標(biāo)iOS設(shè)備,之后MDM服務(wù)器就可以通過(guò)APNs發(fā)送指令到目標(biāo)設(shè)備進(jìn)行設(shè)備管理。
使用iPhone Configuration Utility生成MDM Enrollment Profile
iPhone Configuration Utility (IPCU中文名:iPhone配置實(shí)用工具)是蘋果提供的專門用戶制作iOS配置文件的工具。
iPhone Configuration Utility 貌似已經(jīng)別蘋果拋棄了,替代工具可以使用 OS X Server 或直接用文章后面附的 xml 格式修改。
a. 在IPCU中點(diǎn)擊“新建”,創(chuàng)建一個(gè)描述文件,在“通用”中填寫名稱、標(biāo)識(shí)符、機(jī)構(gòu)、描述、安全性等。
b. 如果MDM服務(wù)器采用的是自簽名的SSL證書,需要在描述文件的“憑證”中加入MDM服務(wù)器SSL對(duì)應(yīng)的客戶端證書(p12或cer),如果有密碼,填寫對(duì)應(yīng)證書的密碼。
c. 在“移動(dòng)設(shè)備管理”中依次填入服務(wù)器URL、登記URL、主題、選擇身份鑒定憑證,并設(shè)置MDM服務(wù)權(quán)限等。
[圖片上傳中。。。(5)]
其中服務(wù)器URL為MDM服務(wù)器主服務(wù)地址,用于設(shè)備對(duì)MDM服務(wù)器指令的反饋;登記URL為設(shè)備MDM注冊(cè)、注銷等消息調(diào)用地址;主題為MDM推送證書APSP的用戶ID;身份鑒定為MDM服務(wù)器SSL客戶端證書
MDM Enrollment Profile格式參考
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>AccessRights</key>
<integer>8191</integer>
<key>CheckInURL</key>
<string>[CheckIn URL,必須為HTTPS]</string>
<key>CheckOutWhenRemoved</key>
<true/>
<key>IdentityCertificateUUID</key>
<string>A1A4B9B4-D575-4B86-9CB2-1ECAEC947154</string>
<key>PayloadDescription</key>
<string>配置“移動(dòng)設(shè)備管理”</string>
<key>PayloadDisplayName</key>
<string>移動(dòng)設(shè)備管理</string>
<key>PayloadIdentifier</key>
<string>com.xxx.mdm.mdm</string>
<key>PayloadOrganization</key>
<string>[Organization Name]</string>
<key>PayloadType</key>
<string>com.apple.mdm</string>
<key>PayloadUUID</key>
<string>4DBD3BA6-0941-4EE6-99FD-7E2C82E95B5D</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>ServerURL</key>
<string>[Server URL,必須為HTTPS]</string>
<key>SignMessage</key>
<true/>
<key>Topic</key>
<string>com.apple.mgmt.External.97eb479e-5ad1-4bcb-bc9a-ac7fe2a8e7c0</string>
</dict>
<dict>
<key>Password</key>
<string>[SSL證書密碼]</string>
<key>PayloadCertificateFileName</key>
<string>client.p12</string>
<key>PayloadContent</key>
<data>
[...base64 格式證書...]
</data>
<key>PayloadDescription</key>
<string>提供設(shè)備鑒定(證書或身份)。</string>
<key>PayloadDisplayName</key>
<string>client.p12</string>
<key>PayloadIdentifier</key>
<string>com.xxx.mdm.憑證</string>
<key>PayloadOrganization</key>
<string>[Organization Name]</string>
<key>PayloadType</key>
<string>com.apple.security.pkcs12</string>
<key>PayloadUUID</key>
<string>A1A4B9B4-D575-4B86-9CB2-1ECAEC947154</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</array>
<key>PayloadDescription</key>
<string>描述文件描述。</string>
<key>PayloadDisplayName</key>
<string>MDM Enrollment Profile</string>
<key>PayloadIdentifier</key>
<string>com.xxx.mdm</string>
<key>PayloadOrganization</key>
<string>Tendyron</string>
<key>PayloadRemovalDisallowed</key>
<false/>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>EE9F29F2-ADD2-4E6B-ADE4-767791D9F9FA</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>