苹果MDM供应商CSR签名

上传plist到https://identity.apple.com/pushcert/时 ,我点击了“ 无效证书签名请求 ”,下面是我用来生成plist的步骤:

  1. 作为供应商,使用MacBook的KeyChain Access创build供应商CSR以上传到会员中心以生成MDM签名证书,并以p12格式从KeyChain Access导出私钥,比如vendor.p12
  2. 使用Openssl创build客户CSR:
    – openssl genrsa -des3 -out customerPrivateKey.pem 2048
    – openssl req -new -key customerPrivateKey.pem -out customer.csr
  3. 作为供应商,请从供应门户下载MDM签名证书,WWDR中间证书,并从http://www.apple.com/appleca/AppleIncRootCertificate.cer下载Apple根证书,然后使用以下命令将这三个证书转换为PEM格式一个接一个地被程序读取为PushCertCertificateChain:
    – openssl x509 -inform der -in AppleWWDRCA.cer -out chain.pem
  4. 作为一个供应商,遵循移动设备pipe理协议参考中的java代码示例,我使用从vendor.p12中提取的私钥对customer.csr进行签名
  5. 使用Safari将生成的plist上传到https://identity.apple.com/pushcert/并使用客户的Apple ID

上面的步骤有什么问题吗? 请指教。 非常感谢!

请看这里的详细步骤和源代码来生成plist。

我做了一个供应商签名部分的python脚本,所以你不必使用java代码。

https://github.com/grinich/mdmvendorsign

同时遵循http://www.softhinker.com/in-the-news/iosmdmvendorcsrsigning ,作为供应商作为供应商,

  • 使用任何工具包(例如MacBook上的KeyChain Access)创buildCSR,然后将私钥导出为“vendor.p12”
  • login到Apple会员中心,然后进入“iOS Provisioning Portal”
  • select左侧导航栏上的“证书”,然后点击中心的“其他”标签。
  • 请按照该页面上的说明进行操作,并上传您创build的CSR。
  • 那么作为MDM供应商的证书将可以在“其他”选项卡上下载。 并下载它。
  • 下载WWDR中间证书。
  • 下载苹果根证书。
  • 执行以下openssl命令将MDM供应商证书,WWDR证书和Apple根证书逐一转换为PEM格式:

    openssl x509 -inform der -in mdm_identity.cer -out mdm.pem

    openssl x509 -inform der -in AppleWWDRCA.cer -out intermediate.pem

    openssl x509 -inform der -in AppleIncRootCertificate.cer -out root.pem

然后使用http://www.softhinker.com/in-the-news/iosmdmvendorcsrsing中附加的Java程序生成编码的plist。 现在首先validation生成的plist.xml格式,该格式应该与MDM协议参考文档中提供的示例plist.xml相匹配。

如果plist.xml格式适当,则将播放的播放列表上传到https://identity.apple.com/pushcert/ 。 所以我们需要注意的是,plist.xml仅仅是为了我们的参考,这不是用于upload.For仅仅上传encoded_plist。

  • 请记住用自己的包replace包中的占位符,因为在java包提供的只是一个样本(零大小):

    customer.der,vendor.p12,mdm.pem,intermediate.pem,root.pem


如果我们正在进行客户活动以为MDM Server生成MDM证书

作为客户,

  • 使用任何工具包,即openssl创build一个CSR:

    openssl genrsa -des3 -out customerPrivateKey.pem 2048

    openssl req -new -key customerPrivateKey.pem -out customer.csr

  • 将customer.csr转换为der格式:

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

那么我们需要validation一些东西。

1)使用此命令从customerPrivateKey.pem中删除密码

openssl rsa -in customerPrivateKey.pem -out PlainKey.pem 

2)然后使用此命令合并从门户https://identity.apple.com/pushcert/下载的APNS证书(例如CustomerCompanyName.pem)

 cat CustomerCompanyName.pem PlainKey.pem > PlainCert.pem 

现在,这个PlainCert.pem文件可以在您的服务器中用作MDM_Protocol pdf中提到的APNS / MDM证书,用于示例MDM Server。