Ruby on rails 3 apn_on_rails突然抛出sslv3警报证书吊销
轨道:3.0.5 Ruby:1.9.2 apn_on_轨道:0.5.1 突然开始接收来自apn_on_rails gem的异常:“sslv3警报证书已吊销”。但是,通知仍会发送到设备,证书有效期至2013年 复制:Ruby on rails 3 apn_on_rails突然抛出sslv3警报证书吊销,ruby-on-rails-3,apple-push-notifications,Ruby On Rails 3,Apple Push Notifications,轨道:3.0.5 Ruby:1.9.2 apn_on_轨道:0.5.1 突然开始接收来自apn_on_rails gem的异常:“sslv3警报证书已吊销”。但是,通知仍会发送到设备,证书有效期至2013年 复制: rails控制台 创建对现有设备之一的通知 not1=APN::Notification.create(:device_id=>devices[0].id,:sound=>true,:badge=>1,:alert=>Testing) 执行APN::App.send_通知。(注意:A
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'
正如堆栈跟踪所示,问题出现在/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?
)该代码检查全局证书,无论您是否定义了该证书,它都将检查“config/apple\u push\u develpment\u certification.pem”,并使用该证书发送通知
在我的例子中,我有一个文件“config/apple\u push\u develpment\u certification.pem”,我还为我的iPhone和iPad应用程序添加了两个不同的证书,它们由两个configatron变量定义。因此,我遇到了证书吊销问题,并且我的通知已发送到设备
要解决此问题,请执行以下操作:
定义“configatron.apn.cert”以指向development.rb和production.rb文件中的新证书,如堆栈跟踪所示-问题出现在/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?
)该代码检查全局证书,无论您是否定义了该证书,它都将检查“config/apple\u push\u develpment\u certification.pem”,并使用该证书发送通知
在我的例子中,我有一个文件“config/apple\u push\u develpment\u certification.pem”,我还为我的iPhone和iPad应用程序添加了两个不同的证书,它们由两个configatron变量定义。因此,我遇到了证书吊销问题,并且我的通知已发送到设备
要解决此问题,请执行以下操作:
定义“configatron.apn.cert”以指向development.rb和production.rb文件中的新证书