过去几天我一直在努力解决这个问题。想知道是否有其他人遇到过这个。我正在尝试使用我的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服务器(https://identity.apple.com/pushcert),我收到了:
{“ErrorCode”: - 80018,“ErrorMessage”:“证书签名验证失败”,“ErrorDescription”:“证书签名验证失败,因为http://www.apple.com/business/mdm \”target = \ “_空白\” >签名< / A>无效。“}
任何人都知道出了什么问题?
答案 0 :(得分:3)
发现问题,签名代码工作正常,这是证书链的问题,返回的错误是错误的,因为它指向签名。
我的问题是我发送的证书链使用了错误的CA证书,它需要来自Apple WWDR CA.