iOS开发基础100 - MDM证书申请流程
申请成为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证书申请流程的更多相关文章
- MDM 证书申请流程(vendor及customer)
整个流程分为两部分:vendor,customer. 一.Vendor 1.成为一个 MDM Vendor 1) 首先你须要拥有一个 Apple Enterprise account($299/年). ...
- iOS开发之邓白氏编码申请流程
要申请企业证书,必须先申请邓白氏编码,在苹果网站有一个免费申请邓白氏编码的链接:https://developer.apple.com/program/enroll/dunsLookupForm.ac ...
- MDM证书申请的流程
MDM证书申请的流程 整个流程分为两部分:vendor,customer. 一.Vendor 1.成为一个 MDM Vendor 1) 首先你需要拥有一个 Apple Enterprise accou ...
- IOS开发基础知识碎片-导航
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
- iOS开发Swift篇—(六)流程控制
iOS开发Swift篇—(六)流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注意:这 ...
- iOS开发——总结篇&IOS开发基础知识
IOS开发基础知识 1:Objective-C语法之动态类型(isKindOfClass, isMemberOfClass,id) 对象在运行时获取其类型的能力称为内省.内省可以有多种方法实现. 判断 ...
- IOS开发基础环境搭建
一.目的 本文的目的是windows下IOS开发基础环境搭建做了对应的介绍,大家可根据文档步骤进行mac环境部署: 二.安装虚拟机 下载虚拟机安装文件绿色版,点击如下文件安装 获取安装包: ...
- iOS开发基础-九宫格坐标(6)
继续对iOS开发基础-九宫格坐标(5)中的代码进行优化. 优化思路:把字典转模型部分的数据处理操作也拿到模型类中去实现,即将 ViewController 类实现中 apps 方法搬到 WJQAppI ...
- iOS开发基础-九宫格坐标(5)
继续在iOS开发基础-九宫格坐标(4)的基础上进行优化. 一.改进思路 1)iOS开发基础-九宫格坐标(4)中 viewDidLoad 方法中的第21.22行对控件属性的设置能否拿到视图类 WJQAp ...
- iOS开发基础-九宫格坐标(4)
对iOS开发基础-九宫格坐标(3)的代码进行进一步优化. 新建一个 UIView 的子类,并命名为 WJQAppView ,将 appxib.xib 中的 UIView 对象与新建的视图类进行关联. ...
随机推荐
- VSCode:Mac(M1)配置VSCode中C/C++环境(只需三步)
只需三步. 1. 下载CodeLLDB插件: 2. 配置tasks.json { "version": "2.0.0", "tasks": ...
- vue多页面应用
多页面应用本身和单页面应用没什么差别,无非是多了几个入口点. 入口点多的话,还可以写个函数扫描路径取添加入口点. 比较让人好奇的是路径的问题.我们要开发的时候要体现目录层级接口,所以入口文件是一层套一 ...
- N 年前,为了学习分库分表,我把 Cobar 源码抄了一遍
10 几年前,互联网产业蓬勃发展,相比传统 IT 企业,互联网应用每天会产生海量的数据. 如何存储和分析这些数据成为了当时技术圈的痛点,彼时,分库分表解决方案应运而生. 当时最流行的 Java 技术论 ...
- web component基础概念及使用
概念和使用 作为开发者,我们都知道尽可能多的重用代码是一个好主意.这对于自定义标记结构来说通常不是那么容易 - 想想复杂的HTML(以及相关的样式和脚本),有时您不得不写代码来呈现自定义UI控件,并且 ...
- Linux下mv和cp命令的区别
1.功能上的区别 mv:用户可以使用mv为文件或目录重命名或将文件由一个目录移入另一个目录中. cp: cp的功能是将给出的文件或目录拷贝到另一文件或目录中. 2.inode上的区别(inod ...
- WPF 不透明蒙板概述
本文内容 先决条件 使用不透明蒙板创建视觉效果 创建不透明蒙板 将渐变用作不透明蒙板 显示另外 4 个 不透明蒙板能够使部分元素或视觉对象透明或部分透明. 要创建不透明蒙版,请将 Brush 应用于元 ...
- claude3国内API接口对接
众所周知,由于地理位置原因,Claude3不对国内开放,而国内的镜像网站使用又贵的离谱! 因此,团队萌生了一个想法:为什么不创建一个一站式的平台,让用户能够通过单一的接口与多个模型交流呢?这样,用户就 ...
- Java并发编程(一)JUC同步类
JUC 是学习 Java 并发编程的小伙伴不可避免的一个 pkg,JUC提供了对并发编程的底层支持,比如我们熟悉的线程池.MQ.线程同步... 都有JUC的影子,下面我们一起来看看JUC下比较重要的几 ...
- Anaconda安装Python的seaborn库
本文介绍在Anaconda的环境中,安装Python语言中,常用的一个绘图库seaborn模块的方法. seaborn模块是基于Matplotlib的数据可视化库,它提供了一种更简单.更漂亮的 ...
- LLVM技术在GaussDB等数据库中的应用
本文分享自华为云社区<[GaussTech第3期]LLVM技术在GaussDB等数据库中的应用>,作者:GaussDB 数据库. Hi,别急! 让技术触达每一个角落,赋能更多的人,Gaus ...