申请成为MDM Vendor

首先需要拥有一个 iOS Developer Enterprise Program 帐号;

申请成为MDM Vendor,iOS企业开发帐号默认不支持MDM功能,需要向苹果申请才能开通,访问https://developer.apple.com/contact/submit.php,并通过iOS企业开发帐号Agent身份登录,提交申请说明希望成为MDM Vendor,苹果一般在一个工作日内会处理完毕,处理完后会给Agent发邮件通知,此时再次登录到开发中心Add iOS Certificate界面或多处一个“MDM SCR”选项

1 创建私钥

打开钥匙串访问,点击“钥匙串访问”→证书助理→从证书颁发机构请求证书如图1-1:

 

图1-1

点击后调到如图1-2窗口

 

图1-2

 

 

如上图:用户电子邮件填入注册的苹果账号(Apple ID相同的邮箱地址),常用名称填入名称,记住这个名称,需要提供给开发人员。CA电子邮件地址空着不填,最后一项选择存储到磁盘。然后点继续,保存。不修改文件名,你会在文件夹内找到CertificateSigningRequest.certSigningRequest文件,我们这里修改一下文件名方便我们查找MdmPushChat.certSigningRequest,钥匙串内会生成一个私钥。将私钥导出名为vendor.p12,导出时设置密码,一定要记住。

 

图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

打开网页https://developer.apple.com,用苹果ID登录如图2-1,点击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

然后点击Continue,MDM vendor文件生成如下图2-6

 

图2-6

点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 Customer

再创建一个新的CSR文件,为了和上面的区分,常用名称也要和上面的不一样,我们把名字命名为MDMCustomer.csr。

转换 CSR->cer

openssl req -inform pem -outform der -in MDMCustomer.csr -out customer.der

把MDMCustomer.csr给vendor,vendor需要用 softthink 的 java 代码对 customer 提交的 customer.der 进行签名。softthink的下载地址

新建一个java项目把softthink的代码和提供的dom4j-1.6.1.jar导入,把上面生成的文件和Test.java放到同一个目录下。

还会碰到sun.misc.BASE64Encoder找不到jar包的问题,请自行百度解决。

 

图3

我们打开Test.java,alias是vendor生成CSR文件时候的常用名称,password是vendor.p12的密码。

 

图4

代码执行结果将在程序目录下生成一个  plist_encoded 文件。

上传 plist

用你的 Apple ID 登录https://identity.apple.com/pushcert/,点击“Create aCertificate”,上传 plist_encoded 文件。上传后会产生一个 APNS 证书,下载后得到一个 .pem 文件(为方便使用,改名为 push_cert.pem)。双击 .pem 文件将证书安装到钥匙串中。打开钥匙串,看看到该证书名为“APSP:”,如下图所示:

 

图5

从钥匙串中把证书导出p12格式,就是MDM中需要用到的证书了。

iOS开发基础100 - MDM证书申请流程的更多相关文章

  1. MDM 证书申请流程(vendor及customer)

    整个流程分为两部分:vendor,customer. 一.Vendor 1.成为一个 MDM Vendor 1) 首先你须要拥有一个 Apple Enterprise account($299/年). ...

  2. iOS开发之邓白氏编码申请流程

    要申请企业证书,必须先申请邓白氏编码,在苹果网站有一个免费申请邓白氏编码的链接:https://developer.apple.com/program/enroll/dunsLookupForm.ac ...

  3. MDM证书申请的流程

    MDM证书申请的流程 整个流程分为两部分:vendor,customer. 一.Vendor 1.成为一个 MDM Vendor 1) 首先你需要拥有一个 Apple Enterprise accou ...

  4. IOS开发基础知识碎片-导航

    1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...

  5. iOS开发Swift篇—(六)流程控制

    iOS开发Swift篇—(六)流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注意:这 ...

  6. iOS开发——总结篇&IOS开发基础知识

    IOS开发基础知识 1:Objective-C语法之动态类型(isKindOfClass, isMemberOfClass,id) 对象在运行时获取其类型的能力称为内省.内省可以有多种方法实现. 判断 ...

  7. IOS开发基础环境搭建

    一.目的 本文的目的是windows下IOS开发基础环境搭建做了对应的介绍,大家可根据文档步骤进行mac环境部署: 二.安装虚拟机 下载虚拟机安装文件绿色版,点击如下文件安装 获取安装包:       ...

  8. iOS开发基础-九宫格坐标(6)

    继续对iOS开发基础-九宫格坐标(5)中的代码进行优化. 优化思路:把字典转模型部分的数据处理操作也拿到模型类中去实现,即将 ViewController 类实现中 apps 方法搬到 WJQAppI ...

  9. iOS开发基础-九宫格坐标(5)

    继续在iOS开发基础-九宫格坐标(4)的基础上进行优化. 一.改进思路 1)iOS开发基础-九宫格坐标(4)中 viewDidLoad 方法中的第21.22行对控件属性的设置能否拿到视图类 WJQAp ...

  10. iOS开发基础-九宫格坐标(4)

    对iOS开发基础-九宫格坐标(3)的代码进行进一步优化. 新建一个 UIView 的子类,并命名为 WJQAppView ,将 appxib.xib 中的 UIView 对象与新建的视图类进行关联. ...

随机推荐

  1. C 语言编程 — 高级数据类型 — 指针

    目录 文章目录 目录 前文列表 指针 声明指针 使用指针 NULL 指针 指针的算术运算 指向指针的指针 将指针作为实际参数传入函数 从函数返回指针 一个古老的笑话 前文列表 <程序编译流程与 ...

  2. VSCode:让VSCode终端面板显示到右边

    很简单,右击下方终端面板,选中"将视图移动到侧面板": 可以看到终端成功显示到右边了:

  3. 添加身份认证和鉴权方案-使用jwtbearer

    HTTP身份认证框架 RFC 7235 定义了一个 HTTP 身份验证框架,服务器可以用来质询(challenge)客户端的请求,客户端则可以提供身份验证凭据. 服务端开启了身份认证后.如果客户端访问 ...

  4. 记录一次 对应用程序日志排查,老是刷出有本地ip登录Sqlserver数据库失败的日志

    在我电脑-计算机管理-事件查看器-windows日志-应用程序里 1秒中就刷很多条 用户sa登录某个数据库失败,客户端ip:192....; 我查看ip发现是本机的ip地址.也就是说有本地的应用程序在 ...

  5. linux服务器下安装cbc和ipopt求解器【踩坑总结】

    安装CBC求解器 CBC求解器是一个C++库,我们可以通过以下命令在Linux系统中进行安装: sudo apt-get install coinor-cbc 对于Windows操作系统,可以从CBC ...

  6. [快速阅读六] 统计内存数据中二进制1的个数(SSE指令集优化版).

    关于这个问题,网络上讨论的很多,可以找到大量的资料,我觉得就就是下面这一篇讲的最好,也非常的全面:          统计无符号整数二进制中 1 的个数(Hamming Weight) 在指令集不参与 ...

  7. 《利用python进行数据分析》笔记章节索引

    本文章作为我的一系列关于<利用python进行数据分析>的笔记的文章的索引.分为四部分. 第一部分:numpy基础,共六节: numpy基础--ndarray(一种多维数组对象):http ...

  8. SCOI 回旋退役记

    02.21 day -2 开始写了,期望这不是真的退役记吧.但是不是的概率好小-- 这几天一直考试,怎么说呢,到差不差的,也就那个样子. 归根结底,菜是原罪,和那些大佬相比我真的很很很菜啊.当时看 c ...

  9. ES 关于 remote_cluster 的一记小坑

    最近有小伙伴找到我们说 Kibana 上添加不了 Remote Cluster,填完信息点 Save 直接跳回原界面了.具体页面,就和没添加前一样. 我们和小伙伴虽然隔着网线但还是进行了深入.详细的交 ...

  10. C#.NET 使用HttpWebRequest发送JSON

    方法: public static string HttpPostJson(string url, string postStr, int timeOut, string charset) { Htt ...