1

私は Apple MDM サーバーで作業していますが、実際には正常に動作しています。クライアントが証明書について不平を言う署名の問題があるため、他の人が構成プロファイルに署名する方法に興味があります。

私はJavaを使用していますが、これはJavaでコードを実装する方法に関する特定の質問ではなく、構成プロファイルに正しく署名する方法に関する詳細であるため、あらゆる種類のヘルプを歓迎します.

これが現在の方法です。

byte[] data = ...
X509Certificate cert = ...
KeyPair keyPair = ...
CMSSignedDataGenerator gen = new CMSSignedDataGenerator();          
gen.addSigner(keyPair.getPrivate(), cert, CMSSignedGenerator.DIGEST_SHA1, new AttributeTable(new Hashtable<DERObjectIdentifier, Attribute>()), null);
CMSSignedData signedData = gen.generate(new CMSProcessableByteArray(data), true, "BC");

response.setContentType("application/x-apple-aspen-config");
response.getOutputStream().write(signedData.getEncoded());

アルゴリズム SHA1withRSA で作成された自己署名証明書を使用しており、キーは RSA で、サイズは 2048 です。

このやり方に問題がある人はいますか?

また、Java 以外の言語でコードを自由に投稿してください。それでも役立つ場合があります。

4

1 に答える 1

0

これを修正するために2つのことを行いました。まず、証明書を x509 v3 に変更しました。これは v1 でした。次に、KeyUsage と BasicConstraints を追加して、iOS が信頼できるものとして受け入れるようにしました。2 番目に行ったのは、証明書自体を CertStore として追加することでした。この 2 つの手順により、iPhone 構成ユーティリティが使用する証明書と同様の証明書が作成されます。

于 2012-06-22T11:18:49.787 に答える