Ошибка проверки подписи сертификата

Когда я пытаюсь загрузить сертификат на https://identity.apple.com/pushcert/, он сообщает, что подпись недействительна.

Я шаг за шагом следовал документации по Mobile Device Manager и http://www.softhinker.com/in-the-news/iosmdmvendorcsrsigning. Я использую 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 Provisioning и загружаю сертификат, генерирующий один.
Затем я экспортировал закрытый ключ сгенерированного CSR и экспортировал его в файл.pfx. Это файл, который я использовал.

это был правильный путь?

2 ответа

Решение

Я решил эту проблему с помощью: C:\Program Files (x86)\GnuWin32\bin>openssl pkcs12 -export -out mdmapnspfx.pfx - inkey mdmpk.pem -in mdm.pem

Ключ был неверным, я не использовал сертификат mdm.pem, он был самоподписанным.

То, что вы должны загрузить на https://identity.apple.com/pushcert/ это не просто сертификат, это plist (XML) с цепочкой сертификатов. Образец Java-приложения доступен (http://www.softhinker.com/in-the-news/iosmdmvendorcsrsigning), который вы сможете использовать для справки.

Другие вопросы по тегам