我正在开发iOS MDM Server作为我的项目,我差不多完成了。
我手动创建了所有必需的文件,包括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)apple什么时候检查配置文件的SSL证书?我确定它在配置文件安装期间检查,因为我的配置文件安装由于错误的SSL Certificat而多次失败。 Apple在发送推送通知时是否也会检查SSL证书,因为我注意到了一个类 com.notnoop.exceptions.InvalidSSLConfig ?是否检查发送推送通知的服务器是否具有在配置文件中指定的SSL证书?
修改
当服务器向设备发送推送通知时,设备会使用“空闲消息”响应服务器URL中指定的URL。如果SSL证书此时无效,会发生什么。它会产生错误吗?
2)多个服务器是否可以使用相同的推送通知证书来减少单个服务器上的负载,以发送推送通知并向设备发送命令?会有冲突吗?
3)没有限制。使用单个推送通知证书发送的推送通知?如果没有,它可以处理任意数量的推送通知吗?
4)配置文件中的签入URL和服务器URL可以不同吗?
修改 登记URL和服务器URL可以是不同的服务器,例如,
CheckIN网址:https://www.domainone.com/MDM/
服务器网址:https://www.domaintwo.com/MDM/
5)First question in this link (最不重要)虽然该解决方案涉及SSL证书的到期,但它没有提及更改SSL证书。
编辑2
续订推送通知证书时,已安装配置文件的设备如何更新设备配置文件中的证书详细信息?
答案 0 :(得分:0)
1)如果您的服务器具有SSL证书,则hmm AFAIK然后使用该证书签署配置文件仅验证它。在功能方面,我认为它没有做任何事情。但是,您还需要一个与您的服务器相关的证书,这是作为有效负载的一部分进入plist的证书。它需要与服务器具有相同的一个。 (通常采用.p12格式)
2)是的,您可以拥有多台服务器,因为实际上发送推送通知只是对具有适当凭据的Apple的请求。
3)我不相信证书可以发送的推送通知数量有限制......但更多的是您发送它们的频率。 (例如,通过推送通知请求充斥苹果)
4)是的我非常相信,但你应该仔细检查这个
5)SSL证书再次只是使个人资料得到验证AFAIK(如果我们严格地谈论mdm)。 (编辑:我忘了你可以在配置文件中嵌入另一个.p12证书。这提供了设备和服务器之间的身份验证,并且需要是相同的SSL证书。)
答案 1 :(得分:0)
1)当MDM Server向设备发送推送通知时,设备会通过联系服务器URL来响应服务器。服务器的SSL证书必须与配置文件中的SSL证书有效负载相匹配。如果有任何冲突,则会出错。因此,每当设备与Serverl URL联系时,都会检查 SSL证书。如果存在任何冲突,将产生以下错误。
Desc :“服务器URL”的服务器证书无效。
域:MCHTTPTransactionErrorDomain
2)是的,多个服务器可以拥有相同的推送通知证书。每个服务器只需要知道证书的密码。
3)我认为没有任何限制。推送通知发送。请查看以下链接。
4)您的服务器URL和签到URL可能不同,但应该是同一主机。
5)如果更改了SSL证书,则必须删除该配置文件并且必须安装新的配置文件。