iOS中推送通知的提供商证书

时间:2013-02-27 03:10:53

标签: ios apple-push-notifications provider

我需要在我的应用中实现iOS推送通知。我已经尝试了一段时间并完成了所需的iOS端代码更改。我可以从APNS获取设备令牌。但我坚持提供者方实施。

我正在使用java提供程序并使用JAVAPNS库来实现提供程序端逻辑。令我困惑的是证书安装和提供商所需的东西。

我的提供商在unix / windows机器上运行,我不知道如何在这里继续安装SSL证书。

我已从Apple开发者网站获得推送通知的SSL证书。但是如何继续使用p12文件?

虽然有很多关于推送通知的iOS端实现的讨论和教程,但我没有在网上找到很多解释。

2 个答案:

答案 0 :(得分:0)

SSL证书用于从服务器端代码建立与gateway.push.apple.com的套接字连接。以下是一些Ruby代码作为示例:

  APN_SSL_KEY_FILE = 'lib/SSLCert_Private_Key.pem'
  APN_SSL_HOST     = 'gateway.push.apple.com'
  APN_SSL_PORT     = 2195
  APN_SSL_PASSWORD = '<password>'

  def configure_apn_cert
    @@apn_cert         = File.read(File.join(RAILS_ROOT, APN_SSL_KEY_FILE))
    @@apn_context      = OpenSSL::SSL::SSLContext.new
    @@apn_context.key  = OpenSSL::PKey::RSA.new(@@apn_cert, APN_SSL_PASSWORD)
    @@apn_context.cert = OpenSSL::X509::Certificate.new(@@apn_cert)
  end

  def create_and_configure_apn_server
    configure_apn_cert if not @@apn_cert
    puts "APN Service: Configuring APN SOCKET and SSL connection"
    @apn_socket       = TCPSocket.new(APN_SSL_HOST, APN_SSL_PORT)
    @apn_ssl          = OpenSSL::SSL::SSLSocket.new(@apn_socket, @@apn_context)
    @apn_ssl.sync     = true
    @apn_ssl.connect
    @apn_is_active = false;    # reopen the TCP/SSL sockets for now
  end

你得到一个.pem文件:

$ openssl pkcs12 -in myfile.p12 -out myfile.pem

答案 1 :(得分:0)

如果你正在使用JavaPNS,那就简单了:

 import javapns.Push;

 public class PushTest {


      public static void main(String[] args) {

                Push.alert("Hello World!", "keystore.p12", "keystore_password", false, "Your token");


      }
 }