iOS MDM 设备轮询和 APNs 证书
Posted
技术标签:
【中文标题】iOS MDM 设备轮询和 APNs 证书【英文标题】:iOS MDM Device Polling and APNs Certificate 【发布时间】: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
更新推送通知证书时,已安装配置文件的设备如何更新设备配置文件中的证书详细信息?
【问题讨论】:
【参考方案1】:1) 当 MDM 服务器向设备发送推送通知时,设备通过联系服务器 URL 来响应服务器。服务器的 SSL 证书必须与配置文件中的 SSL 证书有效负载相匹配。如果有任何冲突,就会出现错误。因此,每次设备联系 Serverl URL 时都会检查 SSL 证书。如果有任何冲突,将产生以下错误。
描述:“服务器 URL”的服务器证书无效。
域:MCHTTPTransactionErrorDomain
2) 是的,多台服务器可以拥有相同的推送通知证书。每个服务器只需要知道证书的密码。
3) 我认为没有任何限制。发送的推送通知。检查以下链接。
Reference 1
Reference 2
4) 您的服务器 URL 和签入 URL 可以不同,但应属于同一主机。
5) 如果 SSL 证书发生更改,则必须删除配置文件并安装新配置文件。
【讨论】:
谢谢。你能检查我的 EDIT 2 吗?【参考方案2】:1) 嗯,AFAIK,如果您的服务器有 SSL 证书,那么使用该证书签署配置文件只会验证它。在功能方面,我认为它没有任何作用。但是,您还需要一个与您的服务器相关的证书,这是作为有效负载的一部分进入 plist 的证书。它需要与服务器具有的相同。 (通常为 .p12 格式)
2) 是的,您可以拥有多个服务器,因为本质上发送推送通知只是向苹果发出的具有适当凭据的请求。
3) 我认为证书可以发送的推送通知数量没有限制……但更重要的是您发送它们的频率。 (例如用推送通知请求淹没苹果)
4) 是的,我坚信如此,但您应该仔细检查一下
5) 同样,SSL 证书仅使配置文件通过 AFAIK 验证(如果我们严格谈论 mdm)。 (编辑:我忘记了您可以在配置文件中嵌入另一个 .p12 证书。这提供了设备和服务器之间的身份验证,并且需要是相同的 SSL 证书)。
【讨论】:
以上是关于iOS MDM 设备轮询和 APNs 证书的主要内容,如果未能解决你的问题,请参考以下文章