MDM 证书申请流程(vendor及customer)
整个流程分为两部分:vendor,customer。
一、Vendor
1、成为一个 MDM Vendor
1) 首先你须要拥有一个 Apple Enterprise account($299/年)。
2) 訪问 https://developer.apple.com/contact/submit.php。在这里你能够申请成为一个 MDMVendor:
苹果的承诺是一个工作日内处理完成,处理好会向你的邮箱发送一封通知邮件,并在邮件中提供一些 MDM 相关的文档链接。
实际上的时间可能会比这个稍长一些,以笔者为例。是在一个半天后收到亚洲苹果的邮件回复。
假设申请得到允许,则会在Portal 的 Add Certificate 中多出一个“MDM CSR”选项。
2、创建证书申请
打开钥匙串。点击“钥匙串訪问->证书助理->从证书颁发机构请求证书”,创建一个 CSR。将此 CSR 存储至磁盘。记住“Common Name”字段应该是私钥的名字。创建CRS 时会同一时候创建一个私钥,这个私钥名字(Common Name)会显示在钥匙串中。
3、导出私钥
在钥匙串中选择创建 CSR 时的私钥,导出为vendor.p12文件。
导出时会要求你设置私钥password。请记住这个password。
注意,假设使用 mdm_vendor_sign.py 对 customer 的 csr 进行签名,则须要将私钥导出为 pem 格式(.key文件):
openssl pkcs12 -in vendor.p12 -nocerts -out vendor.key
会要求你输入3次password:vendor.p12 的password、vendor.key 的password、vendor.key 的password。
4、提交 CSR
登录 Portal,进入 Certificates->All,点击 Add Certificate(“+”button),选择Production 下的“MDM CSR” 。
点 Continue->Continue。上传第二步中创建的 CSR,然后点 Generate。
点击 Download,将得到一个 mdm.cer。
5、证书转换:cer->pem。
下载苹果 WWDR 证书和苹果根证书:
http://www.apple.com/certificateauthority/
转换 mdm.cer,WWCR 证书和苹果根证书为 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 文件,则 此步可省略。
二、MDM Customer
1、创建一个 CSR
使用钥匙串创建 CSR,记住密钥对经常使用名称(便于导出)。
导出 CSR。文件名称: MDMCustomer.csr。
2、转换 CSR->cer
openssl req -inform pem -outform der -in customer.csr -out customer.der
注意。假设使用 mdm_vendor_sign.py 脚本可省略此步。
3、从 vendor 获取编码的 plist 文件
customer 将 MDMCustomer.csr 或者 MDMCustomer.csr 提交 vender。
剩下的事情由 vendor 进行。作为 vendor。须要用 mdm_vendor_sign.py 脚本命令( mdmvendorsign-master.zip)或者softthink 的 java 代码(Softhinker.zip)对 customer 提交的 customer.der 进行签名。
这两个工具的下载地址:
https://github.com/grinich/mdmvendorsign http://www.softhinker.com/in-the-news/iosmdmvendorcsrsigning/Softhinker.zip?attredirects=0&d=1
下面我们以 mdm_vendor_sign.py 为例。
运行命令:
python mdm_vendor_sign.py --csr MDMCustomer.csr --key 'vendor.key' --mdm mdm.cer
运行结果将生成一个 plist_encoded 文件。
注意,mdm_vendor_sign.py 脚本仅仅须要3个文件:customer 的 CSR、mdm 私钥、mdm 证书。它不须要 WWDR 证书和苹果根证书,也不须要进行复杂的证书格式转换。WWDR和苹果根证书的下载以及 pem 格式转换都是由脚本自己主动进行的。因此要比用 java 代码签名简单得多。
4、上传 plist
用你的 Apple ID 登录 https://identity.apple.com/pushcert/ 。点击“Create aCertificate”,上传 plist 文件。
使用 java 代码签名的请注意。不要上传 plist.xml。而是上传 plist_encoded。
上传后会产生一个 APNS 证书,下载后得到一个 .pem 文件(为方便使用,改名为 push_cert.pem)。
双击 .pem 文件将证书安装到钥匙串中。打开钥匙串,看看到该证书名为“APSP:<uuid>”。例如以下图所看到的。
MDM 证书申请流程(vendor及customer)的更多相关文章
- MDM证书申请的流程
MDM证书申请的流程 整个流程分为两部分:vendor,customer. 一.Vendor 1.成为一个 MDM Vendor 1) 首先你需要拥有一个 Apple Enterprise accou ...
- https证书申请流程和简介
HTTPS证书是什么 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安 ...
- Ios证书申请流程
1. 创建appId l 苹果开发网站→Account-overview下的Cerficates,IDs & Profiles→AppIDs,点击添加 l 填写App ID描述,在App ID ...
- 七牛云域名DV SSL证书申请流程以及CDN融合加速配置
从2017年起,苹果ios以及微信小程序都陆续要求请求连接request地址是使用HTTPS协议的.所以在项目开发阶段就要考虑解决https的问题,同时这也是为项目实际安全所考虑.最近我也是在折腾项目 ...
- HTTPS原理和CA证书申请(转)
原文地址:http://blog.51cto.com/11883699/2160032 众所周知,WEB服务存在http和https两种通信方式,http默认采用80作为通讯端口,对于传输采用不加密的 ...
- iOS $299刀企业证书申请的过程以及细节补充
最近申请了iOS的 299刀企业证书,相关过程有些问题,分享出来,以便后来人参考. 申请的过程我主要参考了别人以前的文章,链接如下: 1.https://developer.apple.com/cn/ ...
- iOS 证书申请和使用详解(详细版)
对于iOS开发者来说,apple开发者账号肯定不会陌生.在开发中我们离不开它.下面我简单的为大家分享一下关于iOS开发中所用的证书相关知识. 第一部分:成员介绍 1.Certification(证书) ...
- iOS证书申请及使用详细说明
iOS 证书申请和使用详解(详细版)阅读 对于iOS开发者来说,apple开发者账号肯定不会陌生.在开发中我们离不开它.下面我简单的为大家分享一下关于iOS开发中所用的证书相关知识. 第一部分:成 ...
- iOS 证书申请和使用详解(详细版)阅读
对于iOS开发者来说,apple开发者账号肯定不会陌生.在开发中我们离不开它.下面我简单的为大家分享一下关于iOS开发中所用的证书相关知识. 第一部分:成员介绍 1.Certification(证书) ...
随机推荐
- 浅谈Java内存及GC
目录: 1.JAVA虚拟机规范与JAVA虚拟机 2.JVM结构图 3.GC策略与原理 4.垃圾收集算法 5.回收的时机 6.垃圾搜集器 一.JAVA虚拟机规范与JAVA虚拟机 内存,是指程序运行时的数 ...
- 在Linux系统中如何把文件拷贝到U盘
Linux下把所有的都当成文件处理,如果在linux系统下需要拷贝文件,哪么你需要先把U盘挂载到系统中的某一个位置,然后再使用cp命令完成拷贝. 工具/原料 Linux操作系统一台 U盘一枚 方法 ...
- OD: GS Bypasing via SEH / .data
通过 SEH 绕过 GS 保护 GS 机制没对 SEH 提供保护,所以可心通过攻击异常来绕过 GS. 实验环境为: VMware : Windows sp4, 此版本无 SafeSEH 的影响 Vis ...
- OD: Exploit Me - Overwrite Return Address
修改邻接变量的方法对代码环境限制比较多,更通用.更强大的方法是修改 EBP.返回地址等状态值. 为了方便调试,修改之前的代码如下: #include<stdio.h> #include&l ...
- UVA 10037 贪心算法
题目链接:http://acm.hust.edu.cn/vjudge/contest/122829#problem/A 题目大意:N个人夜里过河,总共只有一盏灯,每次最多过两个人,然后需要有人将灯送回 ...
- [转]Windows Shell 编程 第九章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987969】
第九章 图标与Windows任务条 如果问一个非程序人员Windows最好的特色是什么,得到的答案应该是系统最有吸引力的图标.无论是Windows98现在支持的通用串行总线(USB)还是WDM(看上去 ...
- 一步步学会使用SeaJS(转)
原文出处:一步步学会使用SeaJS 2.0 本文分为以下8步,熟悉之后就能够熟练使用SeaJS,从此之后你的生活会变得更加轻松愉悦! 1.SeaJS是什么? 2.下载并检阅SeaJS 3.建立工程和各 ...
- php 练习一 5月5日
练习题一:通过登录者找到他的好友并显示在页面上 <title>无标题文档</title> <style type="text/css"> * { ...
- PHP中取出字符串中的空格 逗号
preg_replace("/\s| |,|,/","",$_str) PHP中取出字符串中的空格 逗号 (包括中文状态下)
- 使用PHP解压文件Unzip
这是一个非常方便的PHP函数从.zip文件解压缩文件.它有两个参数:第一个是压缩文件的路径和第二 function unzip_file($file, $destination) { // creat ...