MDM证书申请的流程

整个流程分为两部分: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文件。导出时会要求你设置私钥密码。请记住这个密码。

注意,如果使用 mdm_vendor_sign.py 对 customer 的 csr 进行签名,则需要将私钥导出为 pem 格式(.key文件):

openssl pkcs12 -in vendor.p12 -nocerts -out vendor.key

会要求你输入3次密码:vendor.p12 的密码、vendor.key 的密码、vendor.key 的密码。

4、提交 CSR

登录 Portal,进入 Certificates->All,点击 Add Certificate(“+”按钮),选择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证书申请的流程的更多相关文章

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

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

  2. iOS证书申请详细流程

    一.事前准备 1.1 准备苹果帐号 首先您需要有一个苹果的开发者帐号,一个mac系统.如果没有帐号可以打开申请加入苹果的开发者计划.如何申请网上有详细的介绍,在此不多做介绍. 如果您已经有了一个帐号, ...

  3. 七牛免费SSL证书申请全流程

    购买证书 在七牛ssl 首页点击购买 购买限免证书 补全订单信息 免费证书,随意填写,问题不大 购买成功,查看订单详情,获取 TXT 值信息 添加 DNS TXT 验证 根据上一步,查看证书订单详情, ...

  4. IIS web证书申请与安装

    数字证书一般是由权威机构颁发的,操作系统会携带权威机构的根证书和中级证书.如果操作系统没有携带权威机构签发的根证书,浏览器会报警,如www.12306.cn,需要安装铁道部根证书后,才能正常访问. 证 ...

  5. 最新的 iOS 申请证书与发布流程(2016.12)

    今天刚好客户定制的APP需要上架,也提供了新的开发者账号,所以就顺带把申请证书与发布流程写一遍. 证书是什么? 上面这个就是我们申请好证书后,下载到本地的.cer文件,也就是常说的开发证书与发布证书的 ...

  6. https证书申请流程和简介

    HTTPS证书是什么 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安 ...

  7. SSL免费证书申请以及nginx配置https流程记录

    设置https需要ssl 证书,可以通过FreeSSL[https://freessl.org/]申请. 流程记录: 输入域名,如 http://www.youdias.xin 选择品牌,如Let's ...

  8. APPStore 发布流程及证书申请

    最新的 iOS 申请证书与发布流程(2016.7) 今天刚好客户定制的APP需要上架,也提供了新的开发者账号,所以就顺带把申请证书与发布流程写一遍. 证书是什么? 上面这个就是我们申请好证书后,下载到 ...

  9. iOS $299刀企业证书申请的过程以及细节补充(二)

    上篇博客写的过程中,没有图,也没有相应的说明.这次再补充一些信息: 1.从 https://developer.apple.com/ios/enroll/dunsLookupForm.action 申 ...

随机推荐

  1. Lightmaping

    一.基本知识点 1.Baked Only:不会传入shader,只有烘焙时才有用,也就是_LightColor0等这种变量不会表示一个Baked Only Light(前提是场景有lightmap,如 ...

  2. Util应用程序框架公共操作类(三):数据类型转换公共操作类(扩展篇)

    上一篇以TDD方式介绍了数据类型转换公共操作类的开发,并提供了单元测试和实现代码,本文将演示通过扩展方法来增强公共操作类,以便调用时更加简化. 下面以字符串转换为List<Guid>为例进 ...

  3. mysql乐观锁总结和实践--转

    原文地址:http://chenzhou123520.iteye.com/blog/1863407 上一篇文章<MySQL悲观锁总结和实践>谈到了MySQL悲观锁,但是悲观锁并不是适用于任 ...

  4. 用CSS制作带图标的按钮

    先上一张效果图

  5. JS控制的事件

    鼠标点击弹出提示事件: <input type="button" value="鼠标点击弹出提示" onclick="DianJi()" ...

  6. VC++6.0文件关联问题的解决方法

    最近我的电脑*.c文件关联失败,无法实现双击*.c打开vc++6.0,感觉特别不爽. 在经过自己的琢磨研究后,终于找到了解决方法. 特此分享下,希望可以帮到遇到同样问题的你. 核心内容: 1.& ...

  7. ajax代码及简单封装

    var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); ...

  8. 教你快速高效接入SDK——服务器端支付回调的处理方式

    转载自:http://blog.csdn.net/chenjie19891104/article/details/48321427今天着重把之前渠道服务器端SDK的时候,遇到的一个蛋疼的问题给解决了. ...

  9. OpenCV,计算两幅图像的单应矩阵

    平面射影变换是关于其次3维矢量的一种线性变换,可以使用一个非奇异的$3 \times 3$矩阵H表示,$X' = HX$,射影变换也叫做单应(Homography).计算出两幅图像之间的单应矩阵H,那 ...

  10. 关于WEB Service&WCF&WebApi实现身份验证之WebApi篇

    之前先后总结并发表了关于WEB Service.WCF身份验证相关文章,如下: 关于WEB Service&WCF&WebApi实现身份验证之WEB Service篇. 关于WEB S ...