Java Apple MDM CSR签名在签名验证时失败

Java Apple MDM CSR签名在签名验证时失败,java,apple-push-notifications,mdm,Java,Apple Push Notifications,Mdm,在过去的几天里,我一直在努力解决这个问题。想知道是否有其他人遇到过这种情况。我正试图用我的MDM供应商证书签署CSR。我在按照你的指示做 以下是计算SHA1WthRSA符号的函数 private static string DoSign(X509Certificate2 signerCert, byte[] csrDerBytes) { var crypt = (RSACryptoServiceProvider)signerCert.PrivateKey; var sha1 =

在过去的几天里,我一直在努力解决这个问题。想知道是否有其他人遇到过这种情况。我正试图用我的MDM供应商证书签署CSR。我在按照你的指示做

以下是计算SHA1WthRSA符号的函数

private static string DoSign(X509Certificate2 signerCert, byte[] csrDerBytes)
{
    var crypt = (RSACryptoServiceProvider)signerCert.PrivateKey;
    var sha1 = new SHA1CryptoServiceProvider();
    byte[] hash = sha1.ComputeHash(csrDerBytes);
    byte[] signedHash = crypt.SignHash(hash, CryptoConfig.MapNameToOID("SHA1"));            
    return Convert.ToBase64String(signedHash);
}
如前所述将此签名附加到编码的plist,并将请求上载到apple服务器()后,我收到:

{“ErrorCode”:-80018,“ErrorMessage”:“证书签名验证失败”,“ErrorDescription”:“证书签名验证失败,因为http://www.apple.com/business/mdm\“target=\”\u blank\“>签名无效。“}


有人知道哪里出了问题吗?

发现了问题,签名代码工作正常,这是证书链的问题,返回的错误是误导性的,因为它指向签名


我的问题是我发送的证书链使用了错误的CA证书,它需要来自Apple WWDR CA。

发现了问题,签名代码工作正常,这是证书链的问题,返回的错误是误导性的,因为它指向签名。请问是什么问题?因为我有相同的问题,我的问题是我发送的电子证书链使用了错误的CA证书,它必须来自Apple WWDR CA。请将您的解决方案发布为我为MDM生成的推送证书。它具有有效的主题/主题。在keychain store中查看时,它显示“此证书由未知的权威机构签署“。也没有与之关联的私钥。知道怎么回事吗?也许你没有苹果根证书?我想它们可以在苹果的网站上下载。没有私钥可能是因为从苹果那里,你得到了公共部分,你需要将它与私钥结合起来,使之成为一个完整的p12文件。。通常,如果您在同一台机器上完成请求,则创建CSR的工具将为您完成此操作。谢谢提示。“未知权威”问题现在已经解决。但我仍然坚持使用.p12文件。我正在使用Mac,并随后合并了公钥/私钥。但是我仍然没有在密钥链中获得带有推送证书的私钥。你知道我哪里错了吗?