您好,我们正在尝试使用 java 创建 iOS MDM 服务器。
我陷入了必须签署证书并发送 SCEP 的第一点。
我首先将 enroll plist 文件发送到 ios 设备。作为响应,当我们从设备上单击“安装”时,我会收到来自 ios 设备的 HttpServletRequest。
它使用包含配置文件请求 url 的 URL,并在 java 中获取相同的请求。
阅读 request.getInputStream 后,我知道该请求有两个部分。一个是plist,另一个是设备的证书。
打印文件我得到以下 plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CHALLENGE</key>
<string>challengesessionvalue1234</string>
<key>UDID</key>
<string>b3d8980d72a6c2abf4f936862e8c50a734ccc030</string>
</dict>
</plist>
它包含注册期间发送的“挑战”字符串。它还提供设备 UDID。这部分是通过使用字节读取java中请求的inputStream来检索的。
request.getInputStream 包含的另一部分是 Apple 证书的 pkcs 签名证书详细信息,如下所示:
PKCS7 :: signer infos:
0. Signer Info for (issuer): CN=Apple iPhone Device CA, OU=Apple iPhone, O=Apple Inc., C=US
version: 01
certificateSerialNumber: 0252f631 cadff5f3 99986
digestAlgorithmId: SHA
authenticatedAttributes: PKCS9 Attributes: [
[ContentType: 1.2.840.113549.1.7.1];
[MessageDigest: 0000: E1 BF 36 1B 11 5C CB 0E E6 1C 57 4F 09 FC 55 B4 ..6..\....WO..U.
0010: D9 C1 E0 1E ....
];
[SigningTime: Wed Jul 30 11:46:02 UTC 2014]
] (end PKCS9 Attributes)
digestEncryptionAlgorithmId: RSA
encryptedDigest:
0000: C5 11 AC 76 89 E7 43 BD A3 03 5F 14 4B 08 BD E4 ...v..C..._.K...
0010: 5E F9 55 BA A7 F5 4E 43 E0 74 FD 06 D2 E2 88 03 ^.U...NC.t......
0020: C4 9C 88 A2 01 E0 9C 63 62 C2 D9 1A BD FC 00 B3 .......cb.......
0030: 64 30 8F 00 BD F4 4A B9 4E EA D5 C6 7B 26 1C 01 d0....J.N....&..
0040: A5 E2 B7 27 B9 7A A8 2D 22 97 E3 D9 24 7B 8B 24 ...'.z.-"...$..$
0050: 84 49 7C 38 1B A7 56 80 B8 CD 1A 44 9C AF 79 D9 .I.8..V....D..y.
0060: 86 12 B5 31 D1 BD 5C 27 F6 64 BC EC DC 02 19 A5 ...1..\'.d......
0070: 25 A5 09 F2 BB 11 67 78 3E DC D4 03 F2 E4 8D C0 %.....gx>.......
我没有复制整个文件,因为它很大。为了阅读这一部分,我使用了 sun.security.pkcs 包中可用于 java 的 PKCS7。
我首先想读取“挑战”值并使用挑战本身对证书进行身份验证,因为它将成为我们唯一标识的会话值。我只想将签名证书传回 iOS 设备,以便我可以进一步进行。
请提供一个java代码来帮助解析这个request.getInputStream。
请求的内容类型为=“application/pkcs7-signature”
我应该如何传回响应。我需要重新创建证书吗?
请帮忙。
希望我能澄清自己的疑问。
提前致谢。!!