【发布时间】:2018-01-06 20:20:59
【问题描述】:
我正在开发一个 iOS MDM 服务器作为我的项目,并且我几乎完成了。
我手动创建了所有必要的文件,包括 mobileconfig 文件并安装了配置文件。
设备经常使用空闲消息轮询服务器 URL 中提到的 URL。我读到空闲消息表明设备正在检查服务器以获取命令,我们可以将 plist 响应作为命令发送。
我的问题是,如果所有设备都频繁轮询 MDM 服务器,那么 .pem 文件和 APNs 证书需要什么。我们是否应该像向我们的 iOS 应用程序发送推送通知一样向设备发送推送通知,如下所示。
{
"aps": {
"id": 10,
"message": "Hello world!",
"from": "Ram"
}
}
如果这是我们应该做的,我们应该在有效载荷中发送什么?
编辑:
我找到了发送推送通知的解决方案。
com.notnoop.apns.ApnsService apnsservice = com.notnoop.apns.APNS.newService().withCert(<pushCertStream>,<pushCertPass>).withProductionDestination().build();
apnsservice.push(token, com.notnoop.apns.APNS.newPayload().mdm(pushMagic)).build());
当这样发送推送通知时,设备会以空闲消息响应,我们可以向设备发送命令。
还有几个疑问:
1) 苹果什么时候检查配置文件的 SSL 证书?我确信它会在配置文件安装期间进行检查,因为我的配置文件安装由于错误的 SSL 证书而失败了很多次。发送推送通知时,Apple 是否也会检查 SSL 证书,因为我注意到了一个类 com.notnoop.exceptions.InvalidSSLConfig?是否检查发送推送通知的服务器是否具有配置文件中指定的 SSL 证书?
编辑
当服务器向设备发送推送通知时,设备会以空闲消息响应服务器 URL 中指定的 URL。如果此时 SSL 证书无效,会发生什么情况。它会产生错误吗?
2) 多台服务器能否拥有相同的推送通知证书,以减少单台服务器发送推送通知和向设备发送命令的负载?会不会有冲突?
3) 数量是否有限制。使用单个推送通知证书发送的推送通知?如果不是,它可以处理任意数量的推送通知吗?
4) 配置文件中的签到 URL 和服务器 URL 可以不同吗?
编辑 Check-in URL 和 Server URL 是否可以属于不同的服务器,即
签到网址:https://www.domainone.com/MDM/
服务器网址:https://www.domaintwo.com/MDM/
5) First question in this link(最不重要) 虽然解决方案提到 SSL 证书到期,但没有提到 SSL 证书的更改。
编辑 2
更新推送通知证书时,已安装配置文件的设备如何更新设备配置文件中的证书详细信息?
【问题讨论】:
标签: ios apple-push-notifications polling mdm