18

PyAPNS を使用してプッシュ通知を iPhone アプリに送信しようとしています。Apple 開発センターから証明書を取得するプロセスを完了しましたが、これは正常に機能しています。ただし、証明書と秘密鍵を単一の .pem ファイルにまとめる方法については、いくつかの異なるチュートリアルに従いました。それらすべてについて、結果の証明書を使用して Web サーバーから OpenSSL を使用して APNS サーバーに接続しようとすると、このエラー:

$ 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 は常に失敗します。プッシュ通知を送信して、「障害 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 に接続しようとしてもパスワードを求められないため、おそらくその部分は問題なく機能しています。

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

4

2 に答える 2

1

raywenderlich.com のチュートリアルで simplepush php スクリプトを使用して証明書をテストすると、そこから先に進むことができます。証明書に問題がないように見えることもありますが、Apple はそのすべてに非常に気を遣っています。

エラー 20 は、秘密鍵の問題を意味すると思います。これによると、プロビジョニング ファイルにも問題がある可能性があると思います: http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=380&start =100 .

すべてを正しくエクスポートしていることを確認し、必要に応じて証明書を取り消して新しい証明書を作成してください。これを解決できることを願っています!:)

于 2013-03-01T16:59:35.533 に答える