0

証明書を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 に何を配置すればよいかわかりません。私がしたことは、企業の iOS プロビジョニング ポータルにアップロードする cst を生成し、生成された証明書をダウンロードすることでした。
次に、生成した 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 に答える