2013-02-27 33 views
0

我需要在我的應用中實現iOS推送通知。我一直在嘗試這一段時間,並已完成所需的iOS側代碼更改。我可以從APNS獲取設備令牌。但我堅持供應商方面的實施。iOS的推送通知提供商證書

我正在使用Java提供程序並使用JAVAPNS庫來實現提供程序端邏輯。讓我感到困惑的是證書安裝和提供者需要的東西。

我的提供程序運行在unix/windows機器上,我不確定如何在這裏繼續進行SSL證書安裝。

我已經從蘋果開發者網站獲得推送通知的SSL證書。但是,我該如何處理p12文件?

雖然有大量關於推送通知的iOS端實現的討論和教程,但我在網上找不到很多解釋。

回答

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 
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"); 


     } 
}