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(证书) ...
随机推荐
- 在桌面Linux环境下开发图形界面程序的方案对比
在Linux下开发GUI程序的方法有很多,比如Gnome桌面使用GTK+作为默认的图形界面库,KDE桌面使用Qt作为默认的图形界面库,wxWidgets则是另一个使用广泛的图形库,此外使用Java中的 ...
- java开发webservice的几种方式
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2 Axis是apache下一个开源的webservice开发组件 ...
- Linux如何创建一个新进程
2016-03-31 张超<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 Linux如何创建一个新进程 ...
- Char Tools,方便的字符编码转换小工具
工作关系,常有字符编码转换方面的需要,写了这个小工具 Char Tools是一款方便的字符编码转换小工具,基于.Net Framework 2.0 Winform开发 主要功能 URL编码:URLEn ...
- textarea固定大小,不可拖动
写前端,经常很多小东西容易忽略忘记,今天写页面碰到设定一个输入框大小,死活记不起怎么固定,故找了一下度娘,其实添加一个css属性就好了: resize: none; 随笔记一下!
- Android(通用机能)
数据存储 本地数据存在都是私有化的. 共享方法1是构造数据源组件.方法2将数据放入扩展存储设备. Mashup 服务组件默认没有运行在独立进程或线程中,因此费时操作一般需要起线程.可配置指定新进程. ...
- 【socket.io研究】1.官网的一些相关说明,概述
socket.io是什么? 官网的解释是一个实时的,基于事件的通讯框架,可以再各个平台上运行,关注于效率和速度. 在javascript,ios,android,java中都实现了,可以很好的实现实时 ...
- 23 读取excel
/** index mappingname originalname datatype family 0 task_id taskIndexCode STRING info 1 task_type r ...
- wordpress禁止调用官方Gravatar头像调用ssl头像链接提升加载速度
在主题中的functions.php文件末尾加上以下代码即可(外观>编辑>functions.php) //官方Gravatar头像调用ssl头像链接 function get_ssl_a ...
- frame嵌套的学习
iframe嵌套的学习 具体代码<br /> window.onload=function(){<br /> var voteid=window.parent.parent.d ...