身份证书 - IOS MDM

Bin*_*Mee 7 certificate x509 mdm ios

关于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' 
Run Code Online (Sandbox Code Playgroud)

当我检查"配置文件密钥引用"时,提到我应该发送数据中的Payload的二进制表示.所以我试过,

  identity_payload['PayloadContent'] = ConvertToBinary(File.read "identity.p12")
Run Code Online (Sandbox Code Playgroud)

我有,

证书"IdentityCertificate"的密码不正确

我提供有效的密码用于导出p12证书.

我究竟做错了什么?

Vic*_*nin 4

回答你的问题:

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

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

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

正如您所指出的,您将需要公钥来加密该设备的有效负载。

2) 实施 SCEP 服务器的最佳方法是什么?是否有任何可靠、稳健的方法可以采用它,而不是我们自己编写所有内容?

SCEP 有开源实现。例如,jSCEP有它(我使用过它),EJBCA有它(我也使用过它)。我看到了其他实现(用 Ruby 等)。因此,您可以找到适合您堆栈的选择。

3)您需要在身份证书到期前更新(与其他证书相同)。

4) 如果您的配置文件不起作用,我建议您在 iPhone 配置实用程序中创建相同的配置文件并与您的配置文件进行比较。大多数时候,您只是错过了一个标签或类似的东西(如果不将其与工作标签进行比较,就需要花很多时间才能弄清楚)。