2012-06-20 40 views
1

我正在使用Apple MDM服務器,實際上它工作正常。我有一個簽名問題,這使得客戶抱怨證書,所以現在我感興趣的是其他人如何簽署他們的配置文件。簽署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之外的其他語言發佈代碼 - 它可能仍然有幫助。

回答

0

我做了兩件事來解決這個問題。 首先我將證書更改爲x509 v3 - 它是v1。然後我添加了KeyUsage和BasicConstraints以使iOS接受它爲可信任的。 我做的第二件事就是將證書本身添加爲CertStore。 這兩個步驟使證書與iPhone配置實用程序使用的證書類似。

相關問題