17

私はPyAppNSを使ってiPhoneアプリにプッシュ通知を送信しようとしています。私たちはアップルのデベロッパーセンターから証明書を取得するプロセスを完了しました。これはうまく動作します。しかし、証明書と秘密鍵を単一の.pemファイルにまとめる方法についてはいくつかのチュートリアルに従ってきましたが、そのすべてについて、WebサーバのOpenSSLを使用してAPNSサーバに接続しようとすると、このエラー:APNSに接続できません:リターンコード20(ローカル発行者証明書を取得できません)

$ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns.pem 
CONNECTED(00000003) 
depth=1 C = US, O = "Entrust, Inc.", OU = www.entrust.net/rpa is incorporated by reference, OU = "(c) 2009 Entrust, Inc.", CN = Entrust Certification Authority - L1C 
verify error:num=20:unable to get local issuer certificate 
verify return:0 
[...certificate chain, server certificate, etc.] 

時々、私たちはこのすべての終わりに何かを入力することができるしていると我々はEnterキーを押すまで、接続が閉じない、時々ではない(それはすぐに閉じます)が、我々はに表示された場合にもプッシュ通知を送信しようとするとPyAPNSが失敗し、エラー「Fault 500: 'APNSサーバへの接続ができませんでした。」というメッセージが表示されます。これは、ローカル発行者の証明書を取得することができません " - 私は理由が何であるか分かりません。私たちは、次のされています

チュートリアルが含まれます:

http://blog.serverdensity.com/how-to-build-an-apple-push-notification-provider-server-tutorial/

http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

http://www.nasoni.net/2010/12/02/apns-client-development-certificate/

http://thebirdytoldmeso.com/%28S%28l131v3jmvpdh5255u1jayp20%29%29/userActions/thread/Question.aspx?id=10302792

はい、私たちは、秘密鍵とそれからパスワードを削除されています私たちが協力しようとするときにそれを求めないOpenSSLと接続すると、おそらくその部分はうまくいきます。

何が問題になるのかわかりません。激しく、これらのチュートリアル(とアップル、明らかに)は、あなたがMacを使用しているということを考えると、私はWindows上で開発していますが、私が使っているサーバーはUbuntuです。 Macにいる私の同僚は、サーバーにアップロードして最終ステップを実行するために結果ファイルを私に送信する前に、最初のステップのさまざまなプレフィックスを実行しています。それは何とかそれと関係がありますか?または、必要なサーバーセットアップのステップがどこからも省かれていますか?

+0

あなたがキーをエクスポートしました証明書?これは通常最初の問題です –

+0

gateway.sandbox.push.apple.comに接続すると["verify error:num = 20"となる可能性があります](http://stackoverflow.com/q/23343910)。 – jww

答えて

1

raywenderlich.comのチュートリアルでsimplepushのPHPスクリプトを使って証明書をテストし、そこでそこから移動することができます。時には、証明書がうまくいくように思えるかもしれませんが、リンゴはそのようなものすべてについて狂ったような気がします。

エラー私は自分の秘密鍵に問題があると思っています。プロビジョニングファイルには、http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=380&start=100にも問題があると思います。

すべてを正しくエクスポートしていることを確認し、必要であれば取り消して新しい証明書を作成してください。あなたはこれを解決することができますように! :)

+0

なぜ投票が下りましたか?それは完全に受け入れられる答えです。 –

+0

raywenderlich.comのチュートリアルでsimplepush PHPスクリプトを使って証明書をテストすると、今すぐうまく動作します。たぶんあなたは正しい、リンゴは狂ったくすぐっている。私は最終結果を見るために前進するべきです。 – David

関連する問題