0

当我尝试将证书上传到https://identity.apple.com/pushcert/时,它告诉我签名无效。

我按照移动设备管理器文档和http://www.softhinker.com/in-the-news/iosmdmvenendorcsrsigning一步一步进行操作。我正在使用 C#.NET

plist_encoded 文件的格式是正确的。

//Load signing certificate from MDM_pfx.pfx, this is generated using signingCertificatePrivate.pem and SigningCert.pem.pem using openssl
var cert = new X509Certificate2(MY_MDM_PFX, PASSWORD, X509KeyStorageFlags.Exportable);
//RSA provider to generate SHA1WithRSA
//Signed private key - PushCertSignature
var crypt = (RSACryptoServiceProvider)cert.PrivateKey;
var sha1 = new SHA1CryptoServiceProvider();
byte[] data = Convert.FromBase64String(csr);
byte[] hash = sha1.ComputeHash(data);
//Sign the hash
byte[] signedHash = crypt.SignHash(hash, CryptoConfig.MapNameToOID("sha1RSA"));
hashedSignature = Convert.ToBase64String(signedHash);

//Read Certificate Chain
String mdm = signCSR.readCertificate(mdmCertificate);
String intermediate = signCSR.readCertificate(intermediateCertificate);
String root = signCSR.readCertificate(rootCertificate);

StringBuilder sb = new StringBuilder(); ;
sb.Append(mdm);
sb.Append(intermediate);
sb.Append(root);

signCSR.PushCertWebRequest(csr, sb.ToString(), hashedSignature);

我不确定在 MDM_pfx.pfx 中放置什么。我所做的是生成 cst 以上传到企业 iOS 配置门户,然后下载证书生成一个。
然后我导出了我生成的 CSR 的私钥并将其导出为 .pfx 文件。这是我使用的文件。

这是正确的方法吗?

4

2 回答 2

1

您必须上传到https://identity.apple.com/pushcert/的不仅仅是证书,而是带有证书链的 plist (XML)。提供了一个示例 Java 应用程序 (http://www.softhinker.com/in-the-news/iosmdmvendorcsrsigning),您应该可以将其用作参考。

于 2012-05-30T10:29:25.800 回答
0

我通过使用解决了这个问题: C:\Program Files (x86)\GnuWin32\bin>openssl pkcs12 -export -out mdmapnspfx.pfx - inkey mdmpk.pem -in mdm.pem

密钥不正确,我没有使用 mdm.pem 证书,因为它是自签名的。

于 2012-06-01T09:45:06.823 回答