我正在尝试为我的应用测试推送通知,但无法使用我的证书和私钥连接到苹果沙箱。我正在关注this tutorial。
我根据教程设置了新的证书和应用ID,设置了私钥,并为证书和私钥生成了.pem文件:
openssl x509 -in aps_developer_identity.cer -inform der -out PushTestCert.pem
openssl pkcs12 -nocerts -out PushTestKey.pem -in PushTestKey.p12
对于私钥,它要求我输入密钥的原始密码以及新密码。我使用了相同的密码。
然后我测试了与apple的连接,并提示输入密码,然后输入密钥.pem文件的新密码,该密码与旧密码相同:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert PushTestCert.pem -key PushTestKey.pem
Enter pass phrase for PushTestKey.pem:
error setting private key
59244:error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch:/SourceCache/OpenSSL098/OpenSSL098-35.1/src/crypto/x509/x509_cmp.c:406:
有什么我想念的吗?在iOS配置门户上,我的app id表示它已启用开发(推送)。我试过重新下载openssl证书,没有雪茄。
答案 0 :(得分:1)
为了跟进,可能发生这种情况的原因是您没有使用新的公钥在developer.apple.com中为您的应用生成推送通知证书。因此它无法匹配,因为您的私钥与用于生成推送通知证书的公钥不匹配
答案 1 :(得分:0)
私钥加密是必须的吗?如果没有,请尝试删除加密,如下所示: openssl rsa -in PushTestKey.pem -out PushTestKey.unencrypted.pem
答案 2 :(得分:0)
我重置了我的登录密钥链,并在ios配置门户上从零开始。我想我在某个地方有一个额外的关键干扰。