组合scep和mdm有效负载时出错 - 注册服务器未提供有效的身份证书

Ken*_*tin 5 configuration certificate ota mdm ios

我正在努力推出自己的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>
Run Code Online (Sandbox Code Playgroud)

Ken*_*tin 3

我就此事与苹果取得了联系。

显然,您想要在我在问题中链接的图表的第 3 阶段的第 2 步中发送组合的 MDM 和 SCEP 有效负载,这是 OTA 注册后发送的配置文件。根据 Apple 的说法,您需要两个单独的证书(这意味着两个 SCEP 注册) - 一个用于 OTA 注册,另一个用于 MDM 注册。

  • 这是因为 OTA 配置和 MDM 注册是两个不同的过程,并且彼此一无所知。OTA 配置不需要用于部署 MDM(它可以部署其他 OTA 配置文件,例如电子邮件设置),并且 MDM 不需要通过 OTA 部署(例如,它可以通过 Apple Configurator 直接部署到手机) 。两个进程都需要 SCEP 注册,但由于它们完全解耦,因此它们无法共享同一个进程。 (2认同)