2012-04-13 5 views
1

レールを取り消さスロー1.9.2 apn_on_rails:apn_on_rails宝石から "取り消しのSSLv3警告証明書":0.5.1apn_on_railsが突然のSSLv3警告証明書は

は、突然の例外を受信開始しました。通知がまだデバイスに送信し、証明書が有効ですが2013年

まで再現するには、次の

  1. レールコンソールを。
  2. 既存のデバイスの1つに通知を作成します。

    NOT1 = APN :: Notification.create(:DEVICE_ID =>デバイス[0]、.ID:サウンド=>真、:バッジ=> 1、:警告=> "テスト")

  3. を実行APN::App.send_notifications。 (注意:APNは:: Notification.send_notificationsがまったく通知を送信し、順番にAPN :: App.send_notifications呼び出しをされていません)

予想される出力:デバイスに送信する通知を。例外はスローされません。

実際の出力:デバイスに通知が送信されました。例外がスローされます。以下の例外の完全なスタックトレース:スタックトレースとして

ruby-1.9.2-p0 > APN::App.send_notifications 
SSL_connect returned=1 errno=0 state=SSLv3 read finished A: sslv3 alert certificate revoked 
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read finished A: sslv3 alert certificate revoked 
    from /gems/apn_on_rails-0.5.1/lib/apn_on_rails/libs/connection.rb:59:in `connect' 
    from /gems/apn_on_rails-0.5.1/lib/apn_on_rails/libs/connection.rb:59:in `open' 
    from /gems/apn_on_rails-0.5.1/lib/apn_on_rails/libs/connection.rb:23:in `open_for_delivery' 
    from /gems/apn_on_rails-0.5.1/lib/apn_on_rails/app/models/apn/app.rb:48:in `send_notifications_for_cert' 
    from /gems/apn_on_rails-0.5.1/lib/apn_on_rails/app/models/apn/app.rb:36:in `send_notifications' 

答えて

1

を示している - 問題は/gems/apn_on_rails-0.5.1/lib/apn_on_rails/app/models/apn/app.rb

内でしたApp.rbでは、この方法self.send_notifications方法で:

def self.send_notifications 
    apps = APN::App.all 
    apps.each do |app| 
     app.send_notifications 
    end 
    if !configatron.apn.cert.blank? 
     global_cert = File.read(configatron.apn.cert) 
     send_notifications_for_cert(global_cert, nil) 
    end 
end 

注:グローバル証明書(if !configatron.apn.cert.blank?)コードをチェックし、あなたがこれを定義ししたか否か、それが「設定/ apple_push_develpment_certification.pem」をチェックしますこの証明書で通知を送信します。

は、私の場合、私は、このファイル「のconfig/apple_push_develpment_certification.pem」を持っていたし、私はまた、2つのconfigatron変数によって定義された私のiPhoneとiPadアプリのための2つの異なる証明書を追加します。したがって、証明書の取り消し問題が発生し、私の通知がデバイスに送信されました。 development.rbに新しい証明書を指すように「configatron.apn.cert」を定義し、production.rbファイル

:この問題を解決するには

関連する問題