美文网首页
iOS制作推送所需的pem文件

iOS制作推送所需的pem文件

作者: Brice_Zhao | 来源:发表于2019-06-21 17:38 被阅读0次

首先是简单了解APNS的推送机制

苹果官方给出的对ios推送机制的解释,见图:


APNS.jpg

Provider就是我们自己程序的后台服务器,APNS是Apple Push Notification Service的缩写,也就是苹果的推送服务器。上图可以分为三个阶段:第一阶段:应用程序的服务器端把要发送的消息、目的iPhone的标识打包,发给APNS。第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone。第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知。

APNS推送通知的详细工作流程

下面这张图是说明APNS推送通知的详细工作流程:


APNS原理.jpg

根据图片我们可以概括一下:
1、应用程序注册APNS消息推送。
2、iOS从APNS Server获取devicetoken,应用程序接收device token。
3、应用程序将device token发送给程序的PUSH服务端程序。
4、服务端程序向APNS服务发送消息。
5、APNS服务将消息发送给iPhone应用程序。

一、 CSR文件

首先我们要有生成一个Certificate Signing Request(也就是CSR)的请求文件。

在应用程序里的使用工具中找到钥匙串访问。选择从证书颁发机构请求证书


cer.png

填上你的邮箱和常用名,常用名要记一下,一会会用到。然后选择保存到磁盘,保存位置在桌面,点击存储。
到这里点击完成后我们会在桌面上看到一个CertificateSigningRequest.certSigningRequest的请求文件,也就是我们说的CSR文件。在我们生成CSR文件的同时,会在钥匙串访问中生成一对秘钥,名称为刚才我们填写的常用名.

二、 下载开发证书和发布证书

https://developer.apple.com/devcenter/ios/index.action登录后,在右侧的ios Developer Program里点击iOS Provisioning Portal。

进入下一级页面后在左侧选择Certificates
这里不详细介绍生成 Cer证书的步骤了,默认大家都会了。生成后下载对应的证书到我们的桌面,可以新建一个文件夹,存储对应的开发证书和生产证书,然后双击它们会在钥匙串内生成证书。

三、 导出证书所对应的private key生成P12文件

cerKey_p12.png

至此我们一共生成了三个文件。一个是CSR请求文件,一个是aps_development .cer的SSL证书文件,还有一个刚才生成的Push.p12秘钥文件。现在我们的准备工作已经做完了。要开始对生成的文件进行处理了。原因上面已经解释过,因为我们的服务链接苹果服务器也是需要证书的,但是我们直接生成的证书windows系统(我们一般的服务器都是win系统的)是不识别的,所以我们需要生成一个后缀为pem的带证书带秘钥的文件。

四、 处理证书

1、把.cer的SSL证书转换为.pem文件,执行命令:

openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem

在桌面上会生成一个PushChatCert.pem文件


PushChatCert_pem.png
2、把私钥Push.p12文件转化为.pem文件:

openssl pkcs12 -nocerts -out PushChatKey.pem -in Push.p12

这里需要我们输入密码,这个密码也就是我们导出p12文件时的密码,也就是我们上面导出P12文件时设置的密码,可以不设置。然后,桌面上又会生成一个PushChatKey.pem文件。


PushChatKey_pem.png
3、对生成的这两个pem文件再生成一个pem文件,来把证书和私钥整合到一个文件里:

cat PushChatCert.pem PushChatKey.pem > ck.pem

生成ck.pem文件

这样,我们的文件就制作完了。下面进入测试阶段

为了测试证书是否工作,执行下面的命令:

telnet gateway.sandbox.push.apple.com 2195

它将尝试发送一个规则的,不加密的连接到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:

我们输入abcabc按回车

你会看到一个完整的输出,让你明白OpenSSL在后台做什么。如果链接是成功的,你可以随便输入一个字符,按下回车,服务器就会断开链接,如果建立连接时有问题,OpenSSL会给你返回一个错误信息。

当你在最后的时候你看到这样说明你已经成功了:

CONNECTED(00000003)

depth=1 /C=US/O=Entrust, Inc./OU=www.entrust.net/rpa isincorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust CertificationAuthority - L1C

verify error:num=20:unable to get local issuercertificate

verify return:0


相关文章

  • iOS制作推送所需的pem文件

    首先是简单了解APNS的推送机制 苹果官方给出的对ios推送机制的解释,见图: Provider就是我们自己程序的...

  • iOS制作推送所需的pem文件

    直接说重要的一点!!!!!!重要的事情说说三遍!!!!!!执行以下命令报错!!!!!以为以下是两句命令!!!!op...

  • 百度云推送证书无效解决方案

    公司的iOS推送证书即将到期,重新生成一个证书,按照文档制作出pem文件 上传到百度云推送的时候提示证书无效。经过...

  • iOS推送证书pem文件

    我的项目用的go语言写的推送服务器,由于存在特殊情况,一直无法检查和跟踪其代码的运行情况。所以我在证书过期或者重新...

  • iOS推送证书的pem文件

    公钥生成 推送证书cer转pemopenssl x509 -in aps_development.cer -inf...

  • pem 转 p12

    iOS通知证书 .pem 转为服务器使用的 .p12 1、制作.pem格式证书 下载后一并放入VoIP文件夹中,并...

  • 生成pem和key.pem

    1、pem文件概述 2、生成pem文件步骤 1、打开钥匙串,选择需要生成的推送证书 2、将certificate和...

  • iOS: Pem文件的生成

    百度云推送需要上传Pem文件,pem文件是服务器向苹果服务器做推送时候需要的文件,主要是做服务器的小伙伴们要用,下...

  • 信鸽推送制作.pem证书

    信鸽推送在配置应用的时候,需要上传两个APNS的Push证书,如图: 以下是制作.pem类型文件的方法: 1.打开...

  • iOS推送证书生成pem文件

    pem文件概述 pem文件生成步骤 将证书导出生成 p12 文件打开钥匙串, 选择需要生成的推送证书.1.png右...

网友评论

      本文标题:iOS制作推送所需的pem文件

      本文链接:https://www.haomeiwen.com/subject/rbruqctx.html