【问题标题】:Apple MDM - Push notification topicApple MDM - 推送通知主题
【发布时间】:2016-07-21 07:31:21
【问题描述】:

我正在设置 MDM 服务器,并且已通过所有证书生成步骤。我可以在我的 mdm 服务器上成功注册。但是当我发送唤醒推送通知时,我没有收到设备的回复。

我正在使用Java APNS 库来发送 mdm 推送通知。代码如下:

final String token = getToken("dlfkjgldfjglfl"); 
ApnsService service = APNS.newService()
                .withDelegate(listener)
                .withCert(P12_FILE_PATH, "password")
                .withProductionDestination()
                .build(); 
final String payloadString = APNS.newPayload().mdm("push_magic_token").build(); 

// Send the wake up push notification to APNS
service.push(token, payloadString);

上面的代码没有错误或异常,delegate 打印 environment:production|push notification sent|notification:Message(Id=1; Token=the_token; Payload={"mdm":"magictoken"}) 这意味着推送已成功发送到 APNS,但设备永远不会唤醒并与我的 mdm 服务器通信。

在进一步阅读 Apple 文档后,它指出需要为推送通知指定主题,但库没有设置主题的方法。

来自Apple Documentation

apns-topic: 远程通知的主题,通常是您应用的捆绑包 ID。您在其中创建的证书 会员中心必须包含此主题的功能。如果你的 证书包含多个主题,您必须为 这个标题。如果您省略此标头并且您的 APNs 证书确实 不指定多个主题,APNs 服务器使用证书的 主题作为默认主题。

据此,我推测 Java APNS 库正在使用该主题作为证书主题。

为了生成我遵循this tutorial 的证书,但生成的vendor.p12 文件没有被APNS 接受为我的推送通知证书(握手错误)。经过一番谷歌搜索后,我发现有些人也遇到了这个问题,他们修复了它,从 Apple 下载的 mdm.cer 生成另一个 .p12 生成的 MDM 证书使用:

openssl x509 -in mdm.cer -inform DER -out push_developer.pem -outform PEM
openssl pkcs12 -nocerts -in vendor.p12 -out vendor.pem
openssl pkcs12 -export -inkey vendor.pem -in push_developer.pem -out push_developer.p12

我用作推送通知的证书是push_developer.p12

我不擅长证书管理,所以我迷路了。 我的问题是如何在证书中设置主题?

【问题讨论】:

    标签: ios ssl certificate apple-push-notifications mdm


    【解决方案1】:

    我设法弄清楚该主题是如何运作的。确实在证书内。

    由于我使用的是 mac,我将解释如何在 mac 上获取正确的证书。

    1. 下载 Apple 生成的 MDM 证书(您应该可以从 Apple 网站上的 MDM 控制面板下载)
    2. 在您的机器中安装证书
    3. 打开 Keychain 并找到您刚刚在步骤 2 中安装的证书。它应该类似于:APSP:slkjl34435-sdkj-sfd0-34o5uoijsdf
    4. 单击箭头,您应该会看到私钥。
    5. 选择证书。右键单击并选择“导出 1 项”。 只导出您的证书,而不是证书+私钥。
    6. 保存 .p12 文件并将其用作您的 MDM 推送通知证书。

    通过这些步骤,我设法让主题开始工作,但我的设备仍未唤醒。我将提出一个关于设备未唤醒的新问题,因为这与主题和证书更相关(我认为设备未唤醒是因为主题不正确)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      相关资源
      最近更新 更多