validation返回码:20(无法获得本地签发人证书)

我遇到类似这样的问题: 生产环境中的Apple推送通知:无法获取本地颁发者证书,但是在本地计算机上。 我按照这个教程: http : //www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12,但在这一步

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert PushChatCert.pem -key PushChatKey.pem 

它说:

(大量的数字和字母)validation返回码:20(无法获得本地发行者证书)

问题是什么? 谢谢

问题是您正在使用用于开发的“沙箱”APNS服务器。

为了testing生产证书,您必须连接到生产APNS服务器。 您可以使用地址:

gateway.push.apple.com:2195而不是gateway.sandbox.push.apple.com:2195

不是问题。 事实上,这是确认您的证书正在工作。 如果它不工作,你会得到这样的东西:

 unable to load client certificate private key file <XXXXX>:error:<XXXX>:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:539: <XXXXX>:error:<XXXX>:PKCS12 routines:PKCS12_pbe_crypt:pkcs12 cipherfinal error:p12_decr.c:104: <XXXXX>:error:<XXXX>:PKCS12 routines:PKCS12_item_decrypt_d2i:pkcs12 pbe crypt error:p12_decr.c:130: <XXXXX>:error:<XXXX>:PEM routines:PEM_READ_BIO_PRIVATEKEY:ASN1 lib:pem_pkey.c:132: 

请参阅本教程中的示例http://lessons.runrev.com/s/lessons/m/4069/l/53405-how-do-i-use-push-notifications-with-ios

或者,如果你想从ray http://www.raywenderlich.com/forums/viewtopic.php?t=380&p=7734听到&#x5B83;

这里有一个解释: OpenSSL:无法validationExperian URL的第一个证书

实际上,如果您使用的是支持证书发现的客户端,那么证书就可以工作,并且您不需要openssl来工作,只是为了确认您的证书是正确的,而且您已经这样做了。

也许你正在使用开发证书,你需要使用苹果开发iOS推送服务证书,你也需要从这个证书创build.p12,而不是从开发证书。