MDM推送证书创建

时间:2011-11-04 09:24:15

标签: iphone push apple-push-notifications mdm

我对创建PushCertWebRequest感兴趣(这是来自Apple文档) 我发现很多文档如何为第三方供应商(如Air-watch等)执行此操作,但是他们跳过了使用.p12证书的最后一步。我的意思是你应该创建PushCertWebRequest并将其上传到https://identity.apple.com/pushcert

的过程

所以我的问题是如何创建推送证书请求plist。 这个plist的例子应该遵循(这是来自apple doc)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PushCertRequestCSR</key>
<string>
MIIDjzCCAncCAQAwDzENMAsGA1UEAwwEdGVzdDCCASIwDQYJKoZIhvcNAQEBBQAD
</string>
<key>PushCertCertificateChain</key>
<string>
-----BEGIN CERTIFICATE-----
MIIDkzCCAnugAwIBAgIIQcQgtHQb9wwwDQYJKoZIhvcNAQEFBQAwUjEaMBgGA1UE
AwwRU0FDSSBUZXN0IFJvb3QgQ0ExEjAQBgNVBAsMCUFwcGxlIElTVDETMBEGA1UE
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDlTCCAn2gAwIBAgIIBInl9fQbaAkwDQYJKoZIhvcNAQEFBQAwXDEkMCIGA1UE
AwwbU0FDSSBUZXN0IEludGVybWVkaWF0ZSBDQSAxMRIwEAYDVQQLDAlBcHBsZSBJ
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDpjCCAo6gAwIBAgIIKRyFYgyyFPgwDQYJKoZIhvcNAQEFBQAwXDEkMCIGA1UE
AwwbU0FDSSBUZXN0IEludGVybWVkaWF0ZSBDQSAxMRIwEAYDVQQLDAlBcHBsZSBJ
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDiTCCAnGgAwIBAgIIdv/cjbnBgEgwDQYJKoZIhvcNAQEFBQAwUjEaMBgGA1UE
AwwRU0FDSSBUZXN0IFJvb3QgQ0ExEjAQBgNVBAsMCUFwcGxlIElTVDETMBEGA1UE
-----END CERTIFICATE-----
</string>
<key>PushCertSignature</key>
<string>
CGt6QWuixaO0PIBc9dr2kJpFBE1BZx2D8L0XH0Mtc/DePGJOjrM2W/IBFY0AVhhEx
</string>

最后我创建了PushCertRequestCSR和PushCertSignature,但我真的不知道如何创建PushCertCertificateChain块。

3 个答案:

答案 0 :(得分:1)

请参阅detailed steps and source code here以生成plist。

答案 1 :(得分:1)

我将softhinker java代码移植到python,并添加了一些不错的东西。它可以在GitHub上找到:http://www.github.com/grinich/mdmvendorsign

答案 2 :(得分:0)

  • 使用任何工具包创建CSR,即Mac系统上的KeyChain Access, 然后将私钥导出为'vendor.p12'

  • 登录Apple会员中心,然后转到“iOS配置门户”

  • 在左侧导航栏中选择“证书”,然后点击“其他” 中心的标签。

  • 按照该页面上的说明操作,上传您创建的CSR。

  • 然后您可以使用作为MDM供应商的证书 在“其他”标签上下载。并下载它。

  • 下载WWDR中间证书。

  • 下载Apple根证书。

  • 执行以下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

  • 然后使用softthinker网页中附带的Java程序生成编码的plist。 您需要将java包中的占位符替换为您自己的占位符,因为java包中提供的只是样本一(零大小),它们是:

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

  • 现在首先验证生成的plist.xml格式,该格式应与MDM协议参考文档中提供的示例plist.xml相匹配。

  • 如果plist.xml采用适当的格式,则将 encoded_plist 上传至portal。因此我们需要注意plist.xml仅供我们参考,这不适用于upload.For upload encoded_plist only。 之后从portal下载证书。