iOS推送通知不适用于分配
我试过推送通知为我的应用程序的开发,它工作正常。当我生成生产(分配)的.p12文件时,它正在创建。在服务器上部署.pem文件之后,它会抛出并出错。iOS推送通知不适用于分配
的OpenSSL :: SSL :: SSLError(所以SSL_connect返回= 1个错误号= 0状态= SSLv3的读取服务器S 分裂国家车票答:SSLV3警报证书未知):”}
服务器:回报率(红宝石on Rails的) 任何帮助将是非常可观的
注意:。对于发展.P12它的正常工作的问题是,当我部署分布的.p12请有什么建议可我会丢失
感谢和问候
@Learner
如果所有其他选项都没有,那么工作,你应该检查你如何导出您的P12文件。您应该导出与Apple生产证书关联的p12文件,我希望它能正常工作。
如果你想跳过验证,你可以使用它。
require 'net/http'
require 'openssl'
class Net::HTTP alias_method :origConnect, :connect
def connect
@ssl_context.verify_mode = OpenSSL::SSL::VERIFY_NONE
origConnect
end
end
来源:How to get rid of OpenSSL::SSL::SSLError
但是因为我们希望是安全的,你应该使用遵循
ENV['SSL_CERT_DIR'] = '/usr/share/ca-certificates/'
检查这在您的服务器代码
gateway.push.apple.com,分配
gateway.sandbox.push.apple.com端口2195,端口2195
- 登录-到iPhone开发人员计划门户。
- 从右侧菜单中选择应用程序ID。
- 创建不带通配符的应用程序ID。
- 单击此App ID旁边的配置链接,然后单击该按钮启动向导以生成新的开发推送SSL证书。 (或)生成新的生产推送SSL证书进行分发。
- 下载该证书并双击aps_developer_identity.cer将其导入到你的钥匙串
- 启动钥匙扣助理,然后点击我的证书上留下 展开苹果开发推送服务,并选择苹果开发推送服务
- 右对齐点击并选择“Export 1 elements ...”并保存为apns-cert.p12。 与您的私钥放在同一个扩展区域 右键单击并选择“导出1个元素...”并保存为apns-key.p12。
8.Open终端和目录更改为用于保存的.p12和使用该命令
i)所述PKCS12证书束转换成PEM格式位置。openssl pkcs12 -clcerts -nokeys -out apns-cert.pem -in apns-cert.p12 ii)。 openssl pkcs12 -nocerts -out apns-key.pem -in apns-key.p12 这里你必须提供一些进入php代码的密钥。
删除密码
iii)。 openssl rsa -in apns-key.pem -out apns-key -noenc.pem 这里你必须为Remove口令提供相同的密钥。
终于 iv)。 cat apns-cert.pem apns-key-noenc.pem> apns-dev.pem。
现在您可以在ApnsPHP中使用此PEM文件作为您的证书!
我解决了它。这是一个.p12文件错误。我没有创建我必须使用的.p12。
谢谢!
我正在使用gem'rpush',它将凭证文件夹&中的pem文件存储在数据库中。我的解决方案是从数据库中删除所有旧的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!