2012-06-20 44 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配置实用程序使用的证书类似。

相关问题