5

開発用のアプリケーションのプッシュ通知を試しましたが、うまくいきました。プロダクション(ディストリビューション)の.p12ファイルを生成すると、作成されます。サーバに.pemファイルをデプロイした後、投げてエラーが発生します。 iOSプッシュ通知が配信で機能しない

は、OpenSSL :: SSL :: SSLErrorは(SSL_connectが返さ= 1つのerrno = SSLv3のは、サーバーの essionチケットA読ん= 0の状態:不明のSSLv3警告証明書):」}

をサーバー:RoRの(ルビー )on Railsの任意のヘルプは非常にかなりのだろう

注:は、開発のためには、それが正常に動作しています.P12私が配布.P12を展開していたときに問題がある、私は失われるかもしれないものを提案してください。。。

おかげで、よろしく

答えて

3

@Learner

他のすべてのオプションは、あなたがあなたのP12ファイルをエクスポートする方法を確認する必要があります動作しない場合。あなたはアップルの生産証明書に関連付けられているp12ファイルをエクスポートする必要があります、私はそれが働くことを期待..それは私のために働いた!

7

に従う

ENV['SSL_CERT_DIR'] = '/usr/share/ca-certificates/'

もっとソリューションは、あなたのサーバコード

でこれを確認する使用する必要があります

gateway.push.apple.com、分布

gateway.sandbox.push.apple.com用のポート2195、ポート2195

  1. iPhoneデベロッパプログラムのポータルへのログイン-インチ
  2. 右側のメニューから[アプリケーションID]を選択します。
  3. ワイルドカードのないアプリIDを作成します。
  4. この[アプリケーションID]の横にある[設定]リンクをクリックし、ボタンをクリックしてウィザードを起動して新しい開発プッシュSSL証明書を生成します。開発用(または)配布用の新しいプロダクションプッシュSSL証明書を生成する。
  5. キーチェーンにインポートするにはダウンロードaps_developer_identity.cerにこの証明書をダブルクリックし
  6. 起動キーホルダーアシスタントと左 に私の証明書をクリックしてサービスを押して、サービス
  7. を押して、アップルの開発を選択し右 - アップルの開発を展開します「1要素をエクスポート...」を選択し、apns-cert.p12として保存します。 と同じ展開エリアの秘密キー 右クリックして「1要素をエクスポート...」を選択し、apns-key.p12という名前で保存します。

8.Openターミナルと.P12を保存し、このコマンド

i)を使用してPEMフォーマットにPKCS12証明書のバンドルを変換するために使用される場所に変更ディレクトリ。openssl pkcs12 -clcerts -nokeys -out apns-cert.pem -in apns-cert.p12 ii)。 OpenSSLのPKCS12 -nocerts -outのAPN-key.pem -inのAPN-するkey.p12ここでuは、PHPのコードにアクセスするためのいくつかのキーを与える必要があり 。

パスフレーズを削除します。

iii)。 openssl rsa -in apns-key.pem -out apns-key-noenc.pem ここでは、パスフレーズを削除するのと同じキーを指定する必要があります。

ついに IV)。 cat apns-cert.pem apns-key-noenc.pem> apns-dev.pem。

今、あなたはApnsPHPにあなたの証明書として、このPEMファイルを使用することができます!

0

私はそれを解決しました。 .p12ファイルエラーでした。私は使用しなければならなかった.p12を作成していませんでした。

ありがとうございます!

0

私はそれをデータベースに保存されている証明書フォルダ&からPEMファイルを取っ宝石「rpush」を、使用していました。私の解決策は、すべての古いRpush :: Apns :: Appレコードをデータベースから削除し、クレデンシャルフォルダ内のpemファイルを更新した後にレコードを再生成することでした。

app = Rpush::Apns::App.new 
app.name = "ios_app" 
app.certificate = File.read("/path/to/sandbox.pem") 
app.environment = "sandbox" # APNs environment. 
app.password = "certificate password" 
app.connections = 1 
app.save! 

n = Rpush::Apns::Notification.new 
n.app = Rpush::Apns::App.find_by_name("ios_app") 
n.device_token = "..." # 64-character hex string 
n.alert = "hi mom!" 
n.data = { foo: :bar } 
n.save! 
関連する問題