MDM:如何使用APNS证书

Posted

技术标签:

【中文标题】MDM:如何使用APNS证书【英文标题】:MDM:How to use APNS certificate 【发布时间】:2012-04-19 03:19:27 【问题描述】:

我已使用 ios 企业开发者帐户收到了 .pem 格式的 APNS 证书。我们已从门户网站 https://identity.apple.com/pushcert/ 下载此 mdm 证书

我已经参考了 2011_THE iOS MDM 协议文档以实现 MDM 服务器。我能够获得 pushmagic 和设备令牌。

我正在使用“2011_THE iOS MDM 协议”文档中给出的以下代码作为 server.py 文件。

class queue_cmd: def GET(self):
global current_command, last_sent global my_DeviceToken, my_PushMagic 
i = web.input() cmd = i.command
cmd_data = mdm_commands[cmd] 
cmd_data['CommandUUID'] = str(uuid.uuid4()) 
current_command = cmd_data last_sent = pprint.pformat(current_command)
wrapper = APNSNotificationWrapper('PlainCert.pem', False) 
message = APNSNotification() 
message.token(my_DeviceToken) 
message.appendProperty(APNSProperty('mdm', my_PushMagic))   
wrapper.append(message)
wrapper.notify()

现在我想知道我应该使用从门户网站https://identity.apple.com/pushcert/ 下载的 APNS 证书,方法是在我们的 server.py 代码中将其重命名为“PlainCert.pem”,还是应该由其他人生成“PlainCert.pem”方式?

【问题讨论】:

【参考方案1】:

也可以点击此链接:http://www.softhinker.com/in-the-news/iosmdmvendorcsrsigning

并从 customerPrivateKey.pem 中删除密码 使用这个命令

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

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

cat CustomerCompanyName.pem PlainKey.pem > PlainCert.pem

现在可以在您的服务器代码中使用此 PlainCert.pem 文件。

【讨论】:

【参考方案2】:

这里有一个文档可以帮助你

https://media.blackhat.com/bh-us-11/Schuetz/BH_US_11_Schuetz_InsideAppleMDM_WP.pdf

从 Apple 下载的 APNS 证书应包含证书的公钥部分。 您需要将其与私钥结合起来以制作完整的 .p12 pem 文件。 这应该是代码正在谈论的 PlainCert.pem。

【讨论】:

我为 MDM 生成了推送证书。它有一个有效的主题/主题。在钥匙串商店中查看时,它显示“此证书由未知机构签名”。也没有与之关联的私钥。知道有什么问题吗?

以上是关于MDM:如何使用APNS证书的主要内容,如果未能解决你的问题,请参考以下文章

多个 MDM 服务器,多个 APNs 证书?

无法通过 APNS 向设备发送 MDM 推送通知。

iOS MDM 设备轮询和 APNs 证书

iOS MDM:推送不起作用

APNS 通知未到达在 Apple MDM 中注册的设备

创建一个简单的 MDM server