iOS MDM 设备轮询和 APNs 证书
iOS MDM Device Polling and APNs Certificate
我正在开发一个 iOS MDM 服务器作为我的项目,我已经快完成了。
我手动创建了所有必要的文件,包括 mobileconfig 文件并安装了配置文件。
设备轮询服务器 URL 中提到的 URL 经常使用空闲 message.I 读取空闲消息表明设备正在检查服务器的命令,我们可以发送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 证书,因为我注意到 class com.notnoop.exceptions.InvalidSSLConfig?它是否检查发送推送通知的服务器是否具有配置文件中指定的 SSL 证书?
编辑
当服务器向设备发送推送通知时,设备以空闲消息响应服务器 URL 中指定的 URL。如果此时 SSL 证书无效,会发生什么情况。它会产生错误吗?
2) 多个服务器是否可以拥有相同的推送通知证书以减少单个服务器向设备发送推送通知和发送命令的负载?会不会有冲突?
3) 号码有限制吗?使用单个推送通知证书发送的推送通知数量?如果没有,它可以处理任意数量的推送通知吗?
4) 配置文件中的签到 URL 和服务器 URL 可以不同吗?
编辑
签入 URL 和服务器 URL 可以是不同的服务器吗,即
签入 URL : https://www.domainone.com/MDM/
服务器 URL : https://www.domaintwo.com/MDM/
5) First question in this link(最不重要) 虽然解决方案谈到了 SSL 证书的到期,但没有提到更改 SSL 证书。
编辑 2
更新推送通知证书时,已安装配置文件的设备如何更新设备配置文件中的证书详细信息?
1) 嗯 AFAIK 如果您的服务器有 SSL 证书,那么使用该证书签署配置文件只会验证它。就功能而言,我认为它没有任何作用。但是,您还需要一个与您的服务器相关的证书,这是作为有效负载的一部分进入 plist 的证书。它需要与服务器拥有的相同。 (通常为 .p12 格式)
2) 是的,您可以拥有多个服务器,因为从本质上讲,发送推送通知只是向具有适当凭据的苹果发出请求。
3) 我认为一个证书可以发送的推送通知数量没有限制……但更多的是您发送它们的频率。 (例如,用推送通知请求淹没苹果)
4) 是的,我坚信如此,但你应该仔细检查一下
5) 同样,SSL 证书只会使配置文件通过 AFAIK 验证(如果我们严格地谈论 mdm)。 (编辑:我忘记了您可以将另一个 .p12 证书嵌入到配置文件中。这提供了设备和服务器之间的身份验证,并且需要相同的 SSL 证书)。
1) 当 MDM Server 向设备发送推送通知时,设备通过联系 Server URL 来响应 Server。服务器的 SSL 证书必须与配置文件中的 SSL 证书负载相匹配。如果有任何冲突,就会出现错误。因此,每次设备连接 Serverl 时都会检查 SSL 证书 URL。 如果有任何冲突,将产生以下错误。
Desc : "Server URL" 的服务器证书无效。
域 : MCHTTPTransactionErrorDomain
2) 是的,多个服务器可以拥有相同的推送通知证书。每个服务器只需要知道证书的密码即可。
3) 我认为没有任何限制。发送的推送通知。检查以下链接。
4) 您的服务器 URL 和签入 URL 可以不同,但应该属于同一主机。
5) 如果更改了 SSL 证书,则必须删除配置文件并安装新的配置文件。
我正在开发一个 iOS MDM 服务器作为我的项目,我已经快完成了。
我手动创建了所有必要的文件,包括 mobileconfig 文件并安装了配置文件。
设备轮询服务器 URL 中提到的 URL 经常使用空闲 message.I 读取空闲消息表明设备正在检查服务器的命令,我们可以发送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 证书,因为我注意到 class com.notnoop.exceptions.InvalidSSLConfig?它是否检查发送推送通知的服务器是否具有配置文件中指定的 SSL 证书?
编辑
当服务器向设备发送推送通知时,设备以空闲消息响应服务器 URL 中指定的 URL。如果此时 SSL 证书无效,会发生什么情况。它会产生错误吗?
2) 多个服务器是否可以拥有相同的推送通知证书以减少单个服务器向设备发送推送通知和发送命令的负载?会不会有冲突?
3) 号码有限制吗?使用单个推送通知证书发送的推送通知数量?如果没有,它可以处理任意数量的推送通知吗?
4) 配置文件中的签到 URL 和服务器 URL 可以不同吗?
编辑 签入 URL 和服务器 URL 可以是不同的服务器吗,即
签入 URL : https://www.domainone.com/MDM/
服务器 URL : https://www.domaintwo.com/MDM/
5) First question in this link(最不重要) 虽然解决方案谈到了 SSL 证书的到期,但没有提到更改 SSL 证书。
编辑 2
更新推送通知证书时,已安装配置文件的设备如何更新设备配置文件中的证书详细信息?
1) 嗯 AFAIK 如果您的服务器有 SSL 证书,那么使用该证书签署配置文件只会验证它。就功能而言,我认为它没有任何作用。但是,您还需要一个与您的服务器相关的证书,这是作为有效负载的一部分进入 plist 的证书。它需要与服务器拥有的相同。 (通常为 .p12 格式)
2) 是的,您可以拥有多个服务器,因为从本质上讲,发送推送通知只是向具有适当凭据的苹果发出请求。
3) 我认为一个证书可以发送的推送通知数量没有限制……但更多的是您发送它们的频率。 (例如,用推送通知请求淹没苹果)
4) 是的,我坚信如此,但你应该仔细检查一下
5) 同样,SSL 证书只会使配置文件通过 AFAIK 验证(如果我们严格地谈论 mdm)。 (编辑:我忘记了您可以将另一个 .p12 证书嵌入到配置文件中。这提供了设备和服务器之间的身份验证,并且需要相同的 SSL 证书)。
1) 当 MDM Server 向设备发送推送通知时,设备通过联系 Server URL 来响应 Server。服务器的 SSL 证书必须与配置文件中的 SSL 证书负载相匹配。如果有任何冲突,就会出现错误。因此,每次设备连接 Serverl 时都会检查 SSL 证书 URL。 如果有任何冲突,将产生以下错误。
Desc : "Server URL" 的服务器证书无效。
域 : MCHTTPTransactionErrorDomain
2) 是的,多个服务器可以拥有相同的推送通知证书。每个服务器只需要知道证书的密码即可。
3) 我认为没有任何限制。发送的推送通知。检查以下链接。
4) 您的服务器 URL 和签入 URL 可以不同,但应该属于同一主机。
5) 如果更改了 SSL 证书,则必须删除配置文件并安装新的配置文件。