我正在开发自己的 MDM 服务,并且我正在尝试将 SCEP 和 MDM 有效负载结合起来,就像 Apple 的 MDM 协议文档所建议的那样。我在 C# .Net 中创建了自己的 SCEP Web 服务,并且我知道当我发送 SCEP 有效负载时设备可以获得有效证书。但是,当我还包含一个通过 IdentityCertificateUUID 密钥指向 SCEP 有效负载的 UUID 的 MDM 有效负载时,我收到以下错误,“注册服务器没有提供有效的身份证书。 ”此配置是在用户之后发送的配置选择安装初始注册配置(此图中第 2 阶段的第 1 步)。
该设备似乎甚至没有尝试连接到我的服务器,并且由于服务器端日志记录,我知道它永远不会到达我的 SCEP Web 服务页面。这似乎表明我用来签署有效负载的证书有问题。我已经分别尝试使用我的 SSL 证书(来自预信任的根颁发机构)、我的客户 MDM 推送证书(从我们的供应商证书链接)和我的自签名根证书颁发机构证书(通过 makecert.exe 创建)对其进行签名SCEP 服务用于颁发新证书(即设备身份证书)。
当我使用 MDM 和 SCEP 有效负载创建配置文件时,我查看了 iPCU(iPhone 配置实用程序)的输出,但它不是有效的配置文件(我什至尝试过几乎批发复制它)。但是,当我通过 iPCU 安装配置文件时,不会出现错误,它会毫无问题地开始 SCEP 注册过程。
附带说明 - 此处不能选择使用预先存在的 MDM 供应商。
以下是我正在使用的配置文件:
<?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>PayloadContent</key>
<array>
<dict>
<key>PayloadContent</key>
<dict>
<key>Challenge</key>
<string>this is a challenge</string>
<key>Key Type</key>
<string>RSA</string>
<key>Key Usage</key>
<integer>5</integer>
<key>Keysize</key>
<integer>1024</integer>
<key>Name</key>
<string>mycompany</string>
<key>Retries</key>
<integer>3</integer>
<key>RetryDelay</key>
<integer>0</integer>
<key>Subject</key>
<array><array><array>
<string>CN</string>
<string>mycompany</string>
</array></array></array>
<key>URL</key>
<string>https://mysite.com/scep.aspx</string>
</dict>
<key>PayloadDescription</key>
<string>Configures SCEP</string>
<key>PayloadDisplayName</key>
<string>SCEP (mycompany)</string>
<key>PayloadIdentifier</key>
<string>com.mycompany.mdm.scep1</string>
<key>PayloadOrganization</key>
<string></string>
<key>PayloadType</key>
<string>com.apple.security.scep</string>
<key>PayloadUUID</key>
<string>57225d3d-0758-4d23-8093-e4d8c9bbd47c</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
<dict>
<key>AccessRights</key>
<integer>3</integer>
<key>CheckInURL</key>
<string>mysite.com/checkin.aspx</string>
<key>CheckOutWhenRemoved</key>
<false/>
<key>IdentityCertificateUUID</key>
<string>57225d3d-0758-4d23-8093-e4d8c9bbd47c</string>
<key>PayloadDescription</key>
<string>Configures MobileDeviceManagement.</string>
<key>PayloadIdentifier</key>
<string>com.mycompany.mdm.mdm2</string>
<key>PayloadOrganization</key>
<string></string>
<key>PayloadType</key>
<string>com.apple.mdm</string>
<key>PayloadUUID</key>
<string>ed0ae41d-1aa7-4721-9fe9-139c1072132c</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>ServerURL</key>
<string>https://mysite.com/checkin.aspx</string>
<key>SignMessage</key>
<false/>
<key>Topic</key>
<string>com.apple.mgmt.mypushsubject</string>
<key>UseDevelopmentAPNS</key>
<true/>
</dict>
</array>
<key>PayloadDescription</key>
<string>Profile description.</string>
<key>PayloadDisplayName</key>
<string>Test Profile</string>
<key>PayloadIdentifier</key>
<string>com.mycompany.mdm</string>
<key>PayloadOrganization</key>
<string>mycompany</string>
<key>PayloadRemovalDisallowed</key>
<false/>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>13321058-4037-478c-9b1e-ef6f810065cb</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>