导出pem证书给服务端Push Notification使用
1、 钥匙串创建Push证书的证书签名请求文件(CSR文件)。
如下图所示:
2、创建App ID,创建Provisioning Profile,下载安装到XCode。
苹果开发者后台页面,创建Push Notification App需要的App Id:
注意要勾选需要的服务:
接下来,就是到Provisioning Profiles创建新的描述文件,并选取刚才新创建的AppID,然后下载下来,双击安装到XCode里。
在您的App源码工程里修改Bundle Identifier为您新创建的那个AppID,再在Build Settings里代码签名的地方Provisioning Profiles选择选择刚才下载的那个。
3、接下来从苹果开发者后台下载这个程序需要的Push Notification证书,并安装到钥匙串。
回到页面“App Ids”列表,点击刚才的新创建的AppID,点击“Edit”按钮:
进来后,滚动页面到下面,看到Push Notifications,如下:
点击“Create Certificate”按钮,如果只是开发调试,使用上面那个按钮即可,点击后,如下:
点击“Continue”按钮后如下图,注意选择文件选择的就是上面步骤1产生的“CertificateSigningRequest.certSigningRequest”文件:
点击“Generate”按钮后,如下:
下载“Download”按钮下载证书到本地:
双击aps_development.cer证书将自动安装到钥匙串,如下:
4、在钥匙串里导出p12文件。
(1)先导出Push Services的证书,比如我们命名为“magic_cert.p12”,注意导出时会让你输入密码。
(2)再导出Push Services证书的密钥(Private Key),比如我们命名为“magic_key.p12”:
5、p12文件转换为pem文件。
(1) 将两个p12文件分别转换为pem格式文件。
打开“终端”,敲入命令即可转换。
第一个:
openssl pkcs12 -clcerts -nokeys -out magic_cert.pem -in magic_cert.p12
第二个:
openssl pkcs12 -nocerts -out magic_key.pem-in magic_key.p12
注意会让你输入前面你在钥匙串导出证书时的导出密码。
注:如果最终的pem在服务端系统使用时不需要密码,则可以执行命令去除密码:
openssl rsa -in magic_key.pem -outmagic_key_nopwd.pem
最后会生成两个pem文件,如:“magic_cert.pem”、“magic_key.pem或者magic_key_nopwd.pem”。
(2) 将两个pem文件合并成服务端系统需要的一个pem文件。
依然是命令行执行即可:
cat magic_cert.pem magic_key.pem >magic-dev.pem
或者不需要密码的:
cat magic_cert.pem magic_key_nopwd.pem >magic-dev.pem
最终会生成一个供服务端系统使用的“magic-dev.pem”。
6、OK,打完收工,可以各种吐槽了。
导出pem证书给服务端Push Notification使用的更多相关文章
- 基于CFSSL工具创建CA证书,服务端证书,客户端证书
背景描述 在局域网中部署组件时,想要通过证书来实现身份的认证,确保通信的安全性,可以通过cfssl工具来进行CA证书,服务端证书,客户端证书的创建. 目录 背景描述 部署cfssl工具 下载,上传cf ...
- http系列--HTTP2.0新特性:二进制传输,多路复用,Haeder压缩,服务端push,QUIC协议
一.前言 HTTP 2.0 相比于 HTTP 1.X,可以说是大幅度提高了 web 的性能. 在 HTTP 1.X 中,为了性能考虑,我们会引入雪碧图.将小图内联.使用多个域名等等的方式.这一切都是因 ...
- (转)苹果推送通知服务教程 Apple Push Notification Services Tutorial
本文译自http://www.raywenderlich.com/.原文由iOS教程团队 Matthijs Hollemans 撰写,经原网站管理员授权本博翻译. 在iOS系统,考虑到手机电池电量,应 ...
- openssl实现双向认证教程(服务端代码+客户端代码+证书生成)
一.背景说明 1.1 面临问题 最近一份产品检测报告建议使用基于pki的认证方式,由于产品已实现https,商量之下认为其意思是使用双向认证以处理中间人形式攻击. <信息安全工程>中接触过 ...
- [Centos]openvpn 服务端的安装(easy-rsa3)
VPN在办公和fan墙领域有着广泛的应用, 我们小办公网最近可能会用到,先学学来着 vpn的server需要有公网ip,客户端可以在多种环境下使用 概念 PKI:Public Key Infrast ...
- [译]servlet3.0与non-blocking服务端推送技术
Non-blocking(NIO)Server Push and Servlet 3 在我的前一篇文章写道如何期待成熟的使用node.js.假定有一个框架,基于该框架,开发者只需要定义协议及相关的ha ...
- 从服务端生成Excel电子表格(GcExcel + SpreadJS)
在服务端生成Excel电子表格,除了使用 Node.js + SpreadJS 外,葡萄城官方推荐使用 SpreadJS + GcExcel.该方案不仅能够解决批量绑定数据源并导出Excel.批量修改 ...
- iOS推送小结(证书的生成、客户端的开发、服务端的开发)
1.推送过程简介 1.1.App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS服务器通信,发出注册远程推送的申请 ...
- (转)在SAE使用Apple Push Notification Service服务开发iOS应用, 实现消息推送
在SAE使用Apple Push Notification Service服务开发iOS应用, 实现消息推送 From: http://saeapns.sinaapp.com/doc.html 1,在 ...
随机推荐
- 模拟实现jdk动态代理
实现步骤 1.生成代理类的源代码 2.将源代码保存到磁盘 3.使用JavaCompiler编译源代码生成.class字节码文件 4.使用JavaCompiler编译源代码生成.class字节码文件 5 ...
- [BZOJ1036][ZJOI2008]树的统计Count 解题报告|树链剖分
树链剖分 简单来说就是数据结构在树上的应用.常用的为线段树splay等.(可现在splay还不会敲囧) 重链剖分: 将树上的边分成轻链和重链. 重边为每个节点到它子树最大的儿子的边,其余为轻边. 设( ...
- #error,在xib文件中拷贝按钮所造成的错误.
https://www.evernote.com/shard/s227/sh/3e35a7b3-f40c-46df-8ae0-e7522310c18b/742311974127f12eaafae07a ...
- bzoj 1601 最小生成树
原题传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1601 最小生成树的比较水的题,我们只需要加一个源点,连向所有的点,边权为每个点建水库的代价 ...
- linux基础-临时和永久修改ip地址以及通配符相关
一.临时配置网络(ip,网关,dns) 修改临时ip地址: 1.ifconfig查看当前的网卡和ip地址 2.临时修改IP地址:ifconfig ens32 192.168.16.200/24,ifc ...
- 网络基础(osi、协议)
*互联网协议 人和人沟通需要一套共同的标准,英语就是普遍的一种,计算机如果需要进行联网互通,也需要一种统一的标准,如果所有的计算机都遵守这种标准,就会实现网络的互联. 1.一系列统一的标准,这些标准称 ...
- tmux下make menuconfig背景色不正常问题
参考https://blog.tankywoo.com/2015/10/24/tmux-mutt-not-redraw-problem.html 是由于~/.bashrc或~/.zshrc设置,覆盖了 ...
- JAVA Eclipse 教程
http://www.runoob.com/eclipse/eclipse-tutorial.html
- jQuery,月历,左右点击事件实现月份的改变
html页面: <div class="recordbriefing-title-top-body"> <span class="record-left ...
- Django REST Framework的序列化器是什么?
# 转载请留言联系 用Django开发RESTful风格的API存在着很多重复的步骤.详细可见:https://www.cnblogs.com/chichung/p/9933861.html 过程往往 ...