5

私はこの数日間、この問題に取り組んできました。他の誰かがこれに遭遇したかどうか疑問に思います。MDMベンダー証明書を使用してCSRに署名しようとしています。私はの指示に従っています

http://adcdownload.apple.com//Documents/mobile_device_management_protocol/mobiledevicemanagement_121211.pdf

以下は、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 = \ "_ blankが原因で、証明書の署名の検証に失敗しました\">署名</a>が無効です。"}

誰が何が悪いのか知っていますか?

4

1 に答える 1

3

問題が見つかりました。署名コードは正しく機能しています。これは証明書チェーンの問題でした。返されたエラーは、署名を指しているため誤解を招くものでした。

私の問題は、送信した証明書チェーンが間違ったCA証明書を使用していたことでした。これは、AppleWWDRCAからのものである必要がありました。

于 2012-08-17T22:30:29.457 に答える