Вставьте pkcs12 в файл mobileconfig - PullRequest
3 голосов
/ 01 марта 2012

Как вставить файл .p12 в файл .mobileconfig?

Утилита конфигурации Apple в настоящее время выполняет неизвестное преобразование / кодировку файла .p12, вставляя его в .mobileconfig (это всего лишь файл XML).

Я хочу создать этот файл .mobileconfig без использования утилиты конфигурации Apple iPhone путем непосредственного создания файла XML.

Спасибо

Ответы [ 5 ]

6 голосов
/ 14 июля 2012

Один из способов сделать это - кодировка base64 файла PKCS # 12. Это, например, работает с PHP

openssl_pkcs12_export( $strCertPEM, $strCertPkcs12, $resKey, $strCertPW );    
$arrCertBase64 = str_split( base64_encode($strCertPkcs12), 52);
$xmlUserCertPlist = plistVar('PayloadContent',$arrCertBase64,'data');

function plistVar($key,$var,$type)
{
  //...snip...
  if ( $type == 'data' ) return plistData($key,$var);
  //...snip...
}

function plistData($key,$arr)
{
  //...snip...
  $xml = "<key>". $key ."</key>\n";
  $xml .= "<data>\n";
  foreach ($arr as $val) { $xml .= $val."\n"; }
  $xml .= "</data>\n";
  return $xml;
}
1 голос
/ 01 марта 2012

В дополнение к шагам, упомянутым Anil, считайте двоичные данные из сертификата pkcs12 и затем закодировать его с помощью кодировки base64. Вы можете поместить эти данные в xml, упомянутый Анилом.

<data>base64 encoded data
</data>
1 голос
/ 01 марта 2012

Если вы хотите вставить файл .p12 в файл конфигурации iphone, вам просто нужно выбрать вкладку учетных данных в утилите конфигурации iphone выбранного файла конфигурации. Когда вы configure, он ask for the .p12 file будет прикреплен к файлу .mobileConfig.

У меня есть файл конфигурации, созданный с помощью утилиты конфигурации iphone. Следующие изменения будут изменены, когда вы вложите файл .p12 в файл конфигурации.

Следующий словарь будет прикреплен к файлу xml после создания файла .mobileconfig

пароль -пароль PayloadCertificateFileName certificate_name.p12 PayloadContent // конвертируем данные из сертификата

        </data>
        <key>PayloadDescription</key>
        <string>Provides device authentication (certificate or identity).</string>
        <key>PayloadDisplayName</key>
        <string>Certificate_name.p12</string>
        <key>PayloadIdentifier</key>
        <string>company.Identifier</string>
        <key>PayloadOrganization</key>
        <string>Company name</string>
        <key>PayloadType</key>
        <string>com.apple.security.pkcs12</string>
        <key>PayloadUUID</key>
        <string>UUId of the device</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
    </dict>
0 голосов
/ 17 июля 2017

Я сейчас работаю над этим в моей нынешней должности, развертывая сценарии для генерации файлов n.mobileconfig для рабочих станций Mac OS.

Помогает ссылаться на официальную документацию Apple по Аутентификация 802.1X , поскольку они предоставляют шаблон XML и примечания к нему. Кроме того, во многих других местах упоминается mactls.sh . Я использовал этот шаблон для генерации своих мобильных настроек.

Чтобы получить содержимое base64 файла pkcs12, поместите существующий файл pkcs12 в openssl:

B64PK12=$(cat ${PK12} | openssl enc -base64);

Используйте эту переменную для интерполяции в ваш XML, если вы используете шаблоны для файлов mobileconfig.

Первоначально я включал и RADIUS CA, и содержимое дешифрованного файла PKCS12, причем импортировался только CA, несмотря на то, что он не был закодирован в base64. После кодирования base64 и содержимое CA, и содержимое pkcs12 оба были добавлены в указанную цепочку ключей.

Надеюсь, это поможет.

0 голосов
/ 31 августа 2012

Вы можете использовать apple-скрипт для создания mobileconfig с p12 внутри. Я был в состоянии сделать это, и это прекрасно работает. Боюсь, я не могу поделиться кодом, но могу сказать, что он работает.

...