苹果推送服务端证书制作

需要生成apns专用证书.

Installing the SSL Certificate and Key on the Server

You should install the SSL distribution certificate and private cryptographic key you obtained earlier on the server computer on which the provider code runs and from which it connects with the development or production versions of APNs. To do so, complete the following steps:

  1. Open Keychain Access utility and click the My Certificates category in the left pane.

  2. Find the certificate you want to install and disclose its contents.

    You’ll see both a certificate and a private key.

  3. Select both the certificate and key, choose File > Export Items, and export them as a Personal Information Exchange (.p12) file.

  4. Servers implemented in languages such as Ruby and Perl often are better able to deal with certificates in the Personal Information Exchange format. To convert the certificate to this format, complete the following steps:

    1. In KeyChain Access, select the certificate and choose File > Export Items. Select the Personal Information Exchange (.p12) option, select a save location, and click Save.

    2. Launch the Terminal application and enter the following command after the prompt:

      openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes

  5. Copy the .pem certificate to the new computer and install it in the appropriate place.



苹果推送APNS自己总结

   (2012-03-30 17:17:12)
转载
开发状态服务器地址 gateway.sandbox.push.apple.com 2195
产品状态服务器地址 gateway.push.apple.com         2195


检验证书是否正确的方法:

telnet gateway.sandbox.push.apple.com 2195

Trying 17.172.232.226…

Connected to gateway.sandbox.push-apple.com.akadns.net.

Escape character is ‘^]’.

它将尝试发送一个规则的,不加密的连接到APNS服务。如果你看到上面的反馈,那说明你的MAC能够到达APNS。按下Ctrl+C 关闭连接。如果得到一个错误信息,那么你需要确保你的防火墙允许2195端口。

然后再次连接,这次用我们的SSL证书和私钥来设置一个安全的连接:

openssl s_client -connect gateway.sandbox.push.apple.com:2195

-cert PushChatCert.pem -key PushChatKey.pem

Enter pass phrase for PushChatKey.pem:

你会看到一个完整的输出,让你明白OpenSSL在后台做什么。如果连接是成功的,你可以键入一些字符。当你按下回车后,服务就会断开连接。如果在建立连接时有问题,OpenSSL将会给你一个错误消息,但是你不得不向上翻输出LOG,来找到它。

当然上面要测试prodution版本是否正确的话,把gateway.sandbox.push.apple.com换成gateway.push.apple.com就好。




客户端很好做,申请证书,复制代码,就行了。
服务器端, 如果是php的,那必须使用.pem的证书,如果是java的,那必须使用.p12的证书。(很可能还需要双击证书进行安装!)
服务器端发出的 json包是有大小限制的,最大256字节,包括自定义字典集。
aps中的alert字符串里是可以添加"\n"做换行的。
json包中除了alert,badge,sound之外,还是是可以自定值的。

额外的自定义值:
  $payload['aps'] = array('alert' => 'This is the alert text', 'badge' => 1, 'sound' => 'default');
  $payload['server'] = array('serverId' => $serverId, 'name' => $name);
  $output = json_encode($payload);
  当用户按下“View”后,自定义server值将被传递到设备中的程序。JSON 值如下:
  {
  "aps" :
                     { "alert" :
                                           {
                                               "action-loc-key" : "显示" ,
                                               "body" : "This is the alert text"
                                             },
                         "badge" : 1,
                         "sound" : "default" },
  "server" : { "serverId" : 1, "name" : "Server name")
  }
  256字节的限制适用于整个payload,包括自定义字典集。


  原生接口
  在Server Density中,一旦产生了一条提示,将建立一个payload并插入队列中。因此有必要时我们可以同时发送多个payload。
  Apple推荐使用这种方法,因为如果你在发送各payload时频繁连接和断开, APNS有可能会封锁你的IP。
  如Apple 描述:
  原生接口使用原生socket,具有二进制内容,采用数据流技术,不产生回馈。

你可能感兴趣的:(苹果推送服务端证书制作)