Создание push-сертификата MDM

Меня интересует создание PushCertWebRequest (это из документации Apple). Я нашел много документов, как это сделать для сторонних поставщиков, таких как Air-watch и т. д., но они пропускают последний шаг, когда они работают с вашим файлом . сертификат р12. Я имею в виду процесс, когда вы должны создать PushCertWebRequest и загрузить его на https://identity.apple.com/pushcert

Итак, мой вопрос заключается в том, как создать список запросов на получение сертификата. пример этого plist должен быть следующим (это из документа Apple)

<?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>PushCertRequestCSR</key>
<string>
MIIDjzCCAncCAQAwDzENMAsGA1UEAwwEdGVzdDCCASIwDQYJKoZIhvcNAQEBBQAD
</string>
<key>PushCertCertificateChain</key>
<string>
-----BEGIN CERTIFICATE-----
MIIDkzCCAnugAwIBAgIIQcQgtHQb9wwwDQYJKoZIhvcNAQEFBQAwUjEaMBgGA1UE
AwwRU0FDSSBUZXN0IFJvb3QgQ0ExEjAQBgNVBAsMCUFwcGxlIElTVDETMBEGA1UE
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDlTCCAn2gAwIBAgIIBInl9fQbaAkwDQYJKoZIhvcNAQEFBQAwXDEkMCIGA1UE
AwwbU0FDSSBUZXN0IEludGVybWVkaWF0ZSBDQSAxMRIwEAYDVQQLDAlBcHBsZSBJ
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDpjCCAo6gAwIBAgIIKRyFYgyyFPgwDQYJKoZIhvcNAQEFBQAwXDEkMCIGA1UE
AwwbU0FDSSBUZXN0IEludGVybWVkaWF0ZSBDQSAxMRIwEAYDVQQLDAlBcHBsZSBJ
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDiTCCAnGgAwIBAgIIdv/cjbnBgEgwDQYJKoZIhvcNAQEFBQAwUjEaMBgGA1UE
AwwRU0FDSSBUZXN0IFJvb3QgQ0ExEjAQBgNVBAsMCUFwcGxlIElTVDETMBEGA1UE
-----END CERTIFICATE-----
</string>
<key>PushCertSignature</key>
<string>
CGt6QWuixaO0PIBc9dr2kJpFBE1BZx2D8L0XH0Mtc/DePGJOjrM2W/IBFY0AVhhEx
</string>

Наконец, я создал PushCertRequestCSR и PushCertSignature, но я действительно не знаю, как создать блок PushCertCertificateChain.


person Dmitry Pilipenko    schedule 04.11.2011    source источник


Ответы (3)


Ознакомьтесь с подробными инструкциями и исходным кодом для создания plist.

person Softhinker.com    schedule 16.11.2011
comment
Добро пожаловать в Stack Overflow! Хотя теоретически это может ответить на вопрос, было бы предпочтительнее включить сюда основные части ответа и предоставить ссылку для справки. - person Bill the Lizard; 05.03.2012

Я перенес java-код softhinker на python и добавил несколько приятных вещей. Он доступен на GitHub: http://www.github.com/grinich/mdmvendorsign.

person Michael Grinich    schedule 14.08.2013

  • создайте CSR, используя любой набор инструментов, например KeyChain Access в системе Mac, затем экспортируйте закрытый ключ как «vendor.p12»

  • войдите в Apple Member Center и перейдите на «Портал подготовки iOS»

  • выберите «Сертификаты» на левой панели навигации и щелкните вкладку «Другое» в центре.

  • следуйте инструкциям на этой странице и загрузите созданный вами CSR.

  • тогда сертификат для вас как поставщика MDM будет доступен для скачивания на вкладке «Другое». И скачать его.

  • скачать промежуточный сертификат WWDR.

  • скачать корневой сертификат Apple.

  • выполните приведенную ниже команду openssl, чтобы преобразовать сертификат поставщика MDM, сертификат WWDR и корневой сертификат Apple в формат PEM один за другим:

    openssl x509 -inform der -in mdm_identity.cer -out mdm.pem

    openssl x509 -inform der -in AppleWWDRCA.cer -outintermediate.pem

    openssl x509 -inform der -in AppleIncRootCertificate.cer -out root.pem

  • Затем используйте прикрепленную программу Java на веб-странице softthinker для создания закодированного plist. Вам нужно заменить заполнитель в пакете java своими собственными, потому что в пакете java представлен только образец (нулевой размер), который:

клиент.der, поставщик.p12, mdm.pem, промежуточный.pem, root.pem

  • Теперь сначала проверьте сгенерированный формат plist.xml, который должен соответствовать образцу plist.xml, приведенному в документе Справочник по протоколу MDM.

  • Если plist.xml имеет подходящий формат, загрузите encoded_plist на портал . Поэтому нам нужно позаботиться о том, чтобы файл plist.xml был предназначен только для справки, а не для загрузки. Только для загрузки encoded_plist. После этого загрузите сертификат с портала.

person User97693321    schedule 15.06.2012
comment
Люди начинают замечать, что вы довольно часто ссылаетесь на softhinker.com. Довольно скоро вы будете собирать спам-флажки. Возможно, вы захотите немного смягчить это. Может, ссылку в конец поставить, а не в начало? Может быть, удалить его из-за нескольких вопросов? - person ; 15.06.2012