Fehler beim Kombinieren von scep- und mdm-Nutzdaten - Registrierungsserver hat kein gültiges Identitätszertifikat bereitgestellt

Ich arbeite daran, meinen eigenen MDM-Dienst zu rollen, und ich versuche, die SCEP- und MDM-Nutzdaten zu kombinieren, wie es das MDM-Protokolldokument von Apple vorschlägt. Ich habe meinen eigenen SCEP-Webdienst in C # .Net erstellt und weiß, dass das Gerät ein gültiges Zertifikat erhalten kann, wenn ich nur die SCEP-Nutzdaten sende. Wenn ich jedoch auch eine MDM-Payload einbinde, die über den IdentityCertificateUUID-Schlüssel auf die UUID der SCEP-Payload verweist, wird die folgende Fehlermeldung angezeigt:Der Registrierungsserver hat kein gültiges Identitätszertifikat bereitgestellt."Diese Konfiguration wird gesendet, nachdem der Benutzer die Erstregistrierungskonfiguration installiert hat (Schritt 1 von Phase 2 indiese Diagramm).

Das Gerät versucht anscheinend nicht einmal, eine Verbindung zu meinem Server herzustellen, und dank der serverseitigen Protokollierung weiß ich, dass es meine SCEP-Webdienstseite nie erreicht. Dies scheint darauf hinzudeuten, dass mit dem Zertifikat, mit dem ich die Nutzdaten signiere, etwas nicht stimmt. Ich habe separat versucht, es mit meinem SSL-Zertifikat (von einer vorab vertrauenswürdigen Stammzertifizierungsstelle), meinem Kunden-MDM-Push-Zertifikat (verkettet von unserem Herstellerzertifikat) und meinem selbstsignierten Stammzertifizierungsstellenzertifikat (erstellt über makecert.exe) zu signieren Der SCEP-Dienst stellt neue Zertifikate aus (dh Geräteidentitätszertifikate).

Ich habe mir die Ausgabe von iPCU (iPhone Configuration Utility) angesehen, als ich ein Profil mit MDM- und SCEP-Nutzdaten erstellt habe, und es ist kein gültiges Profil (ich habe sogar versucht, es fast vollständig zu kopieren). Wenn ich das Profil jedoch über die iPCU installiere, tritt der Fehler nicht auf und der SCEP-Registrierungsprozess wird ohne Probleme gestartet.

Eine Randnotiz - die Verwendung eines bereits vorhandenen MDM-Anbieters ist hier keine Option.

Unten ist das Profil, das ich benutze:

<?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>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage