2012-03-01 52 views
3

.mobileconfigファイルに.p12ファイルを挿入するにはどうすればよいですか?pkcs12をmobileconfigファイルに挿入

アップルの設定ユーティリティは、.mobileconfig(これは単なるXMLファイルです)に挿入する際に、.p12ファイルで未知の変換/エンコーディングを実行しています。

xmlファイルを直接作成してApple iPhone設定ユーティリティを使用せずにこの.mobileconfigファイルを作成します。あなたはiPhoneの設定ファイル内の.P12ファイルを挿入したい場合は

おかげで、 Elison

答えて

1

はあなただけ選択し、設定ファイルのiPhoneの設定ユーティリティに資格]タブを選択する必要があります。 configureの場合は、.mobileConfigファイルに添付するask for the .p12 fileになります。

iphone設定ユーティリティを使用して設定ファイルを作成しました。設定ファイルに.p12ファイルを添付すると、フォローが変更されます。た.mobileconfigファイルの

以下の辞書が作成後にxmlファイルに添付れます

パスワード password_value 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

申し訳ありません、申し訳ありませんが、私は正しく質問しませんでした。私が実際にやりたいことは、Apple iPhone設定ユーティリティを使わずにこの.mobileconfigファイルを作成することです。 –

+0

@ElisonNiven編集されたコードを確認してください。 –

+0

はい、私は他のフィールドについて知っています。 PayloadContentの値を取得するにはどうすればよいですか? pkcs12ファイルの単純なbase64ではありません。 –

1

Anilが述べた手順に加えて、pkcs12のバイナリデータ はbase64エンコーディングでエンコードします。 Anilが言及したxmlにそのデータを入れることができます。

<data>base64 encoded data 
</data> 
+0

pkcs12ファイルのバイナリデータを読み込むことは、どういう意味ですか? –

+0

私はあなたがxmlファイルを生成するためにいくつかのコードを使用していると仮定しました。つまり、プログラムでpkcs12ファイルを読み込み、x64に入れる前にbase64でエンコードすることです。 – Nilesh

+0

はい、出力はACPUによって生成されたものと同じではありません –

6

これを達成する1つの方法は、PKCS#12ファイルをエンコードするbase64です。これは、例えば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; 
} 
-3

p12の中にmobileconfigを作成するにはappleスクリプトを使用できます。私はそれを行うことができて、それは素晴らしい作品です。私はコードを共有することはできませんが、うまくいくと思います。

0

Mac OSワークステーション用のn.mobileconfigファイルを生成するためのスクリプトを配備しています。

802.1X Authentcationの公式Appleドキュメントを参照すると、XMLテンプレートとそのノートが記載されています。 また、多くの場所で参照されているのはmactls.shです。私はそのテンプレートを使って私のmobileconfigを生成しました。

は、OpenSSLにPKCS12ファイル、猫既存のPKCS12ファイルのbase64でコンテンツを取得するには、次の

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

はあなたmobileconfigファイルのテンプレートを使用していて、あなたのXMLに補間すること、その変数を使用してください。

RADIUS CAと暗号化されたPKCS12ファイルの内容の両方を、CAがインポートされている状態で、base64でエンコードされていないにもかかわらず含めていました。CAとpkcs12の両方の内容をbase64でエンコードした後、両方が指定されたキーチェーンに追加されました。

これが役に立ちます。

関連する問題