当我尝试将证书上传到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 文件。这是我使用的文件。
这是正确的方法吗?