身份证书 - IOS MDM

时间:2015-04-23 06:02:15

标签: ios certificate x509 mdm

我对Profile Payload中的身份证书几乎没有任何疑问。

如果有些问题是基本的话,请原谅无知。

1。)我发现,我们可以直接使用SCEP标准或PKCS12证书进行设备识别。建议使用SCEP,因为只有设备才能知道私钥。因此,如果我要实现SCEP服务器,是否需要维护映射到设备的Identity证书的公钥列表,以便以后可以使用它进行加密?

2.。)实现SCEP服务器的最佳方法是什么?是否有可靠的可靠方法来采用它而不是自己编写所有内容?

3.如果身份证明已过期怎么办?

作为玩游戏时的基本版本,我尝试在不使用SCEP的情况下将自己的p12证书添加到Payload。

我尝试在identity payloadcontent键中添加base64编码的p12证书,如某些链接参考中所述。我收到了一个错误

  

无法找到“测试MDM配置文件”的身份证书

安装个人资料时

  identity_payload['PayloadType'] = 'com.apple.security.pkcs12'
  identity_payload['PayloadUUID'] = "RANDOM-UUID-STRING"
  identity_payload['PayloadVersion'] = 1
  identity_payload['PayloadContent'] = Base64.encode64(File.read "identity.p12")
  identity_payload['Password'] = 'p12Secret' 

当我检查'Configuration Profile key reference'时,有人提到我应该在数据中发送Payload的二进制表示。 所以我试过了,

  identity_payload['PayloadContent'] = ConvertToBinary(File.read "identity.p12")

我知道了,

  

证书“IdentityCertificate”的密码不正确

我提供了导出p12证书的有效密码。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

回答你的问题:

1)我是否需要维护映射到设备的身份证书的公钥列表,以便以后可以使用它进行加密?

是。你需要某种映射。你可以采取以下几种方式:

  • 只需将其存储在DB中,即证书通用名称和设备UDID之间的映射。
  • 让CN包含UDID(我喜欢这种方法,因为它简化了初始检查)

正如您所指出的那样,您需要使用公钥来加密此设备的有效负载。

2)实现SCEP服务器的最佳方法是什么?是否有可靠的可靠方法来采用它而不是自己编写所有内容?

有SCEP的开源实现。例如jSCEP拥有它(我使用它)而EJBCA拥有它(我也使用它)。我看到了其他实现(在Ruby等等)。所以,你可以找到一个适合你的堆栈的东西。

3)您需要在消费之前更新身份证明(与任何其他证书相同)。

4)如果您的个人资料不起作用,我建议您在iPhone配置实用程序中创建相同的个人资料,并与您的个人资料进行比较。大多数时候,你只错过了一个标签或类似的东西(如果不将它与工作标记进行比较,需要花很多时间来解决它。)